Özel Yazı Tipi URL Yeniden Yazma


32

Portföy projelerim için özel bir gönderi türü belirledim. Bunun için ana URL adres:/projects/

Şimdi de blog yazılarımı kalıcı /articles/*/bağlantı yapısı için kalıcı bağlantı olarak ayarladım. Bu, bir portföy projesini görmeye gittiğimde URL’nin değiştiği anlamına geliyor/articles/projects/project-name/

Yalnızca projelerim için özel posta türü için kalıcı bağlantıları yeniden yazmanın bir yolu olması gerektiğini biliyorum . Ancak URL slug ilanında sözdizimi bilmiyorum - alabileceğim herhangi bir yardım için teşekkür ederiz!

Yanıtlar:


42

Özel gönderi türünü kaydettiğinizde, yeniden yazma kuralının mevcut URL yapısı ile hazırlanmaması gerektiğini belirtmeniz gerekir.

Kısacası, bu, register_post_typeçağrınızdaki bu hattın :

'rewrite' => array('slug' => 'projects'),

Buna dönüşmeli:

'rewrite' => array('slug' => 'projects','with_front' => false),

Daha fazla bilgi için, kodeks girişindekirewrite argümana göz atın.register_post_type

düzenleme: yalnızca kodu güncelledikten sonra, Ayarlar> Permalinks'i ziyaret ederek yeniden yazma kurallarını temizlediğinizden emin olun. Aksi halde eski bağlantıları görmeye devam edersiniz.


parlak teşekkür ederim! Açıklığa kavuşturmak için, kuralları silmek için tek yapmam gereken Ayarlar-> Permalinkler sayfasına gidip "Değişiklikleri Kaydet" e tıklamak, doğru mu?
Jake

4
Değişiklikleri kaydetmenize bile gerek yok. Yalnızca Permalinks ayarları sayfasını açmak yeterlidir (yani, .htaccess dosyanız yazılabilirse. Değilse, değişiklikleri kaydet seçeneğine basın ve .htaccess'in döndürdüğü kodu el ile kopyalayın)
0x61696f

2
Bu benim için işe yaramıyor. Projelerim yayınları hala devam ediyor example.com/projects/title-of-post. Permalinks sayfasını da ziyaret ettim. Buna ne sebep olabilir? İçimde herhangi bir yeniden yazma kuralı yok htaccess.
Desi

Vay, teşekkürler bu kısmıydı! Permalinks sayfasını ziyaret etmek işe yaramadı, ancak geçerli permalink ayarlarının TASARRUFU işe yaradı :)
Alexander Taubenkorb

Yeniden yazma kurallarını temizlemeden bazı şeyleri değiştirmeye devam ettim. Bahşiş için teşekkürler!
Tan-007

15

Bu sorunu tam anlamıyla 3 gün önce yaşadım, sonra wp.tutsplus.com adresinde bir dizi tökezledi . Sorunuzu daha iyi karşılamak için kendi kodumu değiştirdim, ancak seriyi takip ettikten sonra bıraktım. Ayrıca, bunun test edilmediğini unutmayın.

// sets custom post type
function my_custom_post_type() {
    register_post_type('Projects', array(   
       'label' => 'Projects','description' => '',
       'public' => true,
       'show_ui' => true,
       'show_in_menu' => true,
       'capability_type' => 'post',
       'hierarchical' => false,
       'publicly_queryable' => true,
       'rewrite' => false,
       'query_var' => true,
       'has_archive' => true,
       'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'),
       'taxonomies' => array('category','post_tag'),
       // there are a lot more available arguments, but the above is plenty for now
    ));
}

add_action('init', 'my_custom_post_type');

// rewrites custom post type name
global $wp_rewrite;
$projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/';
$wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project=");
$wp_rewrite->add_permastruct('projects', $projects_structure, false);

Teorik olarak, $projects_structuredeğişkende depolanan URL’de ne istersen onu değiştirebilirsin , ne kullandığımda ne var ne var.

İyi şanslar ve her zaman olduğu gibi - geri döndüğünüzden ve nasıl çalıştığını bize bildirdiğinizden emin olun! :)


1
Sadece bağlantılardan oluşan cevaplar, bu kaynakların gelecekte varlığını durdurabileceği (ve muhtemelen olacağı gibi) genellikle yararsızdır. İçeriği özetleyin.
chrisguitarguy

Yeterince adil, düzgün bir revizyon üzerinde çalışacağım.
cmegown

11
Şimdi, cevabım, özel bir yazı tipi URL'sini başarıyla yeniden yazan bir üretim ortamında sahip olduğum çalışma koduna benzer bir kod içeriyor. Umarım daha yararlı olacağını kanıtlar!
cmegown
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.