Özel bir gönderi türünün Ana Sayfası olabilir mi?


16

Webiverse'de özel bir yazı türünün üst öğesi olarak bir sayfa atama konusunda çok sayıda yayın gördüm. Dört saat sonra bir çözüm bulamıyorum ve yardıma ihtiyacım var. Bir "Çalışanlarımız" sayfasının üst öğesi olan "Hakkında" sayfası oluşturdum. Ayrıca "Kişiler" adlı özel bir yayın türü de oluşturdum. Ve "Çalışanlarımız" sayfası için özel bir sayfa şablonu oluşturdum. Permalink yapısı, tek "kişiler" sayfasına ulaşıncaya kadar iyi görünür. Örneğin: John Smith'in Sayfası, kalıcı bağlantı doğru değil.

Özel gönderi türü:

İstenen Permalink Yapısı: / hakkımızda / insanlarımız / john-smith

Aslında Kalıcı Yapı: / çalışanlarımız / john-smith

Çalışanlarımız Sayfa Yapısı: / hakkımızda / insanlarımız

"Hakkımızda" bir sayfa, "çalışanlarımız" bir sayfa ve aynı zamanda özel gönderi türü "insanlar" için slug yeniden yazma işlemidir. Hiyerarşik ayarları değiştirmeye çalıştım ve "about-us / our-people" ı doğrudan yeniden yazma işlemine başarılı bir şekilde eklemeyi denedim.

functions.php:

function codex_custom_init() {
    // Our People
    $people_label = array(
        'name' => 'People',
        'singular_name' => 'People',
        'add_new' => 'Add People',
        'add_new_item' => 'Add New People',
        'edit_item' => 'Edit People',
        'new_item' => 'New People',
        'all_items' => 'All People',
        'view_item' => 'View People',
        'search_items' => 'Search People',
        'not_found' => 'No People found',
        'not_found_in_trash' => 'No People found in Trash',
        'parent_item_colon' => '',
        'menu_name' => 'People',
    );
    $people_args = array (
        'labels' => $people_label,
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'our-people'),
        'capability_type' => 'page',
        'has_archive' => true,
        'hierarchical' => true,
        'menu_position' => null,
        'menu_icon' => get_template_directory_uri() . '/images/icons/people.png',
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt','page-attributes'),
    );

    register_post_type('people', $people_args);
}

Özel Şablonlarım: people.php people-single.php

Yanıtlar:


19

Bu çalışmalı:

'rewrite' => array( 'slug' => 'about-us/our-people'),

ile kombine:

'has_archive' => false,

Yeniden yazma kurallarını temizleme değişikliklerini yaptıktan sonra yöneticinizdeki Kalıcı Bağlantılar ayarları sayfasını ziyaret ettiğinizden emin olun.


2
bu ne yapacak?
Nick

7
Bunun neden işe yarayacağına dair bazı açıklamalar görmek harika olurdu.
montrealist

3
CPT'lerine sadece bir üst sayfa vermeye çalışan ve arşivleri devre dışı bırakmaya çalışmayan herkes için, 'has_archive' öğesinin de arşiv bilgi dosyası için bir dize geçirilebileceğini belirtmek gerekir.
jwinn

3
Bunun, Yoast gibi eklentilerden Breadcrumbs'a 'hakkımızda' enjekte etmeyeceğini de belirtmek gerekir.
Mir

2
@ Yoast sorunu için bilinen herhangi bir geçici çözüm var mı?
arvil
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.