カスタム投稿タイプに親ページを含めることはできますか?


16

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

カスタム投稿タイプ:

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

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

社員ページの構造: / about-us / our-people

「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

回答:


19

これは動作するはずです:

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

と組み合わせ:

'has_archive' => false,

書き換えルールをフラッシュするための変更を行った後、必ず管理者のPermalinks設定ページにアクセスしてください。


2
それは何をしますか?
ニック

7
これがなぜ機能するかについての説明を見るのは素晴らしいことです。
モントリアリスト

3
アーカイブを無効にせずに、CPTに親ページを与えようとしている場合は、「has_archive」にアーカイブスラッグの文字列を渡すこともできます。
jwinn

3
また、これはYoastなどのプラグインからブレッドクラムに「about-us」を注入しないことに注意してください。
ミール

2
@そのヨースト問題の既知の回避策はありますか?
arvil
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.