Чи може користувацький тип публікації мати батьківську сторінку?


16

У Вебіверсі я бачив багато публікацій про присвоєння сторінки як батьківського типу спеціального допису. Через чотири години я не можу знайти рішення і мені потрібна допомога. Я створив сторінку "Про", яка є батьківською стороною сторінки "Наші люди". Я також створив спеціальний тип публікації під назвою "Люди". І я створив спеціальний шаблон сторінки для сторінки "Наші люди". Структура Постійної посилання виглядає чудово, поки ви не потрапите на єдину сторінку "люди". Наприклад: Сторінка Джона Сміта, постійна посилання не вірна.

Спеціальний тип публікації:

Бажана структура Постійної посилання: / про-нас / наших людей / Джон-Сміт

Насправді Структура Постійної посилання: / наші люди / Джон-Сміт

Структура сторінки наших людей: / про-нас / наших-людей

"О-нас" - це сторінка, "наші-люди" - це сторінка, а також переписати кулі для користувацького типу публікації "люди". Я намагався змінити ієрархічні налаштування, і я намагався додавати "про-нас / наших-людей" безпосередньо в переписувати, не маючи успіху.

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);
}

Мої користувацькі шаблони: people.php people-single.php

Відповіді:


19

Це має працювати:

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

поєднується з:

'has_archive' => false,

Не забудьте відвідати сторінку налаштувань Постійних посилань у своєму адміністраторі після внесення змін, щоб очистити правила перезапису.


2
що це буде робити?
Нік

7
Було б чудово побачити деякі пояснення, чому це спрацює.
монтреаліст

3
Для тих, хто просто намагається надати своєму CPT батьківську сторінку, а не відключати архіви, варто відзначити, що "has_archive" також може передавати рядок для архіву.
jwinn

3
Варто також відзначити, що це не вводить «про-нас» у Breadcrumbs із плагінів, таких як Yoast.
Мир

2
@Мір відомий вирішення цієї проблеми Yoast?
арвіль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.