web-dev-qa-db-ja.com

カスタム投稿タイプとパーマリンク設定

Wordpressをサイトのルートに置いてください。ページのURL構造をexample.com/{page-slug}、投稿のURL構造をexample.com/academy/{post-slug}にします。構造として/ academy /%postname%を使用して、私のパーマリンクをカスタムに設定しています。

これはとてもうまくいきます。ただし、定義というカスタム投稿タイプがあります。定義のURL構造はexample.com/glossary/{definition-slug}にします。現在上記の設定で私はexample.com/academy/definition/{definition-slug}のURLを取得しています。

投稿のパーマリンク設定からカスタム投稿タイプを除外する方法はありますか?

これが私のカスタム投稿定義です:

function create_posttypes() {
    $labels1 = array(
            'name' => __( 'Definitions' ),
            'singular_name' => __( 'Definition' ),
            'all_items' => __( 'All Definitions' ),
            'view_item' => __( 'View Definition' ),
            'add_new_item' => __( 'Add New Definition' ),
            'edit_item' => __( 'Edit Definition' ),
            'update_item' => __( 'Update Definition' ),
            'search_items' => __( 'Search Definitions' ),
            'not_found' => __( 'Not Found' ),
            'not_found_in_trash' => __( 'Not Found in Trash' ),
        );
    $args1 = array(
            'label' => 'Definitions',
            'description' => 'Definitions received',
            'labels' => $labels1,
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug', 'definitions'),
            'hierarchical' => false,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'menu_position' => 5,
            'can_export' => true,
            'exclude_from_search' => false,
            'publicly_queryable' => true,
            'capability_type' => 'page',
            'supports' => array('title','thumbnail', 'revisions', 'page-attributes')
        );
    register_post_type( 'definitions', $args1 );
}
1
jppower175

rewriteパラメータを使用して、カスタム投稿タイプのURLの前部(あなたの場合は/academy/)を無効にすることができます。

function create_posttypes() {
    $labels1 = array(
            'name' => __( 'Definitions' ),
            'singular_name' => __( 'Definition' ),
            'all_items' => __( 'All Definitions' ),
            'view_item' => __( 'View Definition' ),
            'add_new_item' => __( 'Add New Definition' ),
            'edit_item' => __( 'Edit Definition' ),
            'update_item' => __( 'Update Definition' ),
            'search_items' => __( 'Search Definitions' ),
            'not_found' => __( 'Not Found' ),
            'not_found_in_trash' => __( 'Not Found in Trash' ),
        );
    $args1 = array(
            'label' => 'Definitions',
            'description' => 'Definitions received',
            'labels' => $labels1,
            'public' => true,
            'has_archive' => true,
            'rewrite' => array(
                'slug' => 'glossary',
                'with_front' => false,
             ),
            'hierarchical' => false,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'menu_position' => 5,
            'can_export' => true,
            'exclude_from_search' => false,
            'publicly_queryable' => true,
            'capability_type' => 'page',
            'supports' => array('title','thumbnail', 'revisions', 'page-attributes')
        );
    register_post_type( 'definitions', $args1 );
}
1
Dave Romsey