Một loại bài đăng tùy chỉnh có thể có Trang phụ huynh?


16

Tôi đã thấy rất nhiều bài đăng trên Webiverse về việc chỉ định một trang là phụ huynh của loại bài đăng tùy chỉnh. Sau bốn giờ tôi không thể tìm ra giải pháp và cần sự giúp đỡ. Tôi đã tạo một trang "Giới thiệu" là trang chính của trang "Nhân dân của chúng tôi". Tôi cũng đã tạo một loại bài đăng tùy chỉnh được gọi là "Mọi người". Và tôi đã tạo một mẫu trang tùy chỉnh cho trang "Nhân dân của chúng tôi". Cấu trúc Permalink trông ổn cho đến khi bạn đến trang "người" duy nhất. Ví dụ: Trang của John Smith, permalink không chính xác.

Loại bài tùy chỉnh:

Cấu trúc Permalink mong muốn: / about-us / our-people / john-smith

Trên thực tế Cấu trúc Permalink: / our-people / john-smith

Cấu trúc trang nhân dân của chúng tôi: / about-us / our-people

"Giới thiệu về chúng tôi" là một trang, "người của chúng tôi" là một trang và cũng là viết lại sên cho loại bài đăng tùy chỉnh, "người". Tôi đã cố gắng thay đổi cài đặt phân cấp và tôi đã thử thêm "về chúng tôi / người của chúng tôi" vào việc viết lại nhưng không thành công.

Hàm.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);
}

Mẫu tùy chỉnh của tôi: people.php people-single.php

Câu trả lời:


19

Điều này sẽ làm việc:

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

kết hợp với:

'has_archive' => false,

Đảm bảo truy cập trang cài đặt Permalinks trong quản trị viên của bạn sau khi bạn thực hiện các thay đổi để xóa các quy tắc viết lại.


2
điều đó sẽ làm gì
Nick

7
Sẽ là tuyệt vời để xem một số giải thích tại sao điều này sẽ làm việc.
montrealist

3
Đối với bất kỳ ai chỉ cố gắng cung cấp cho CPT của họ một trang mẹ và không vô hiệu hóa tài liệu lưu trữ, điều đáng chú ý là 'has_archive' cũng có thể được truyền một chuỗi cho sên lưu trữ.
jwinn

3
Cũng đáng lưu ý rằng điều này sẽ không đưa 'about-us' vào Breadcrumbs từ các plugin như Yoast.
Mir

2
@Mir có cách giải quyết nào được biết cho vấn đề Yoast đó không?
arvil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.