web-dev-qa-db-ja.com

カスタム投稿タイプに親ページを設定できますか?

カスタム投稿タイプの親としてページを割り当てることについて、Webiverseにたくさんの投稿があります。 4時間後、解決策が見つからず、手助けが必要です。 「Our People」ページの親である「About」ページを作成しました。私は "People"というカスタム投稿タイプも作成しました。また、 "Our People"ページ用のカスタムページテンプレートを作成しました。あなたが単一の "people"ページに到達するまで、パーマリンク構造はうまく見えます。例:John Smithのページ、パーマリンクは正しくありません。

カスタム投稿の種類:

望ましいパーマリンク構造: / about-us/our-people/john-smith

実際のパーマリンク構造: / our-people/john-smith

私たちの人々のページ構造: /私たちについて/私たちの人々

"about-us"はページで、 "our-people"はページであり、スラッグもカスタム投稿タイプ "people"に書き換えられます。階層設定を変更しようとしましたが、 "about-us/our-people"を直接書き換えに追加しようとしましたが、成功しませんでした。

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

13
Nick

これはうまくいくはずです。

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

と組み合わせ:

'has_archive' => false,

書き換えルールを消去するために変更を加えた後は、必ず管理者の[固定リンク設定]ページにアクセスしてください。

14
diggy