web-dev-qa-db-ja.com

カスタム分類パラメータのリダレクト

以下を使用して、カスタム投稿タイプにカスタム分類を設定しました。(例として、カスタム投稿タイプはnewtypeと呼ばれ、新しい分類は単にnewtaxと呼ばれます。

// Create Custom Post Type for newpost
add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'x_newtype',
        array(
            'labels' => array(
                'name' => __( 'New Type' ),
                'singular_name' => __( 'New Type' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'newtype'),
            'taxonomies' => array('category', 'post_tag'),
            'supports' => array('title','editor','excerpt','thumbnail')
        )
    );
}


// Add custom field for custom post type
function new_taxonomy() {
   register_taxonomy(
    'newtax',
    'x_newtype',
    array(
        'hierarchical' => true,
        'label' => 'New Tax',
        'query_var' => true,
        'rewrite' => array('slug' => 'newtax')
    )
);
}
add_action( 'init', 'new_taxonomy' );

これはうまくいきますが、URLのリダイレクトについて質問がありました。

現在、http://www.domain.com/newtype/newtax-term/post-name/に移動すると、http://www.domain.com/newtype/post-name/にリダイレクトされます。リダイレクトせずにhttp://www.domain.com/newtype/newtax-term/post-name/をロードするための最良の方法は何ですか?

読んでくれてありがとう。

1
Ryan

リダイレクトせずにhttp://www.domain.com/newtype/newtax-term/post-name/をロードするための最良の方法は何ですか?

これを機能させるには、カスタムの書き換え規則を追加する必要があります。さもなければWordPressはあなたのパーマリンク構造のnewtax-term部分を理解せず、それが理解するURL、%post_type%/%post_slug%にあなたをリダイレクトします。

WordPress Rewrite APIの機能を理解したい場合は、 Rewrite API:基本 の記事を読むことをお勧めします。それを学ぶための努力を惜しまないで、あなたはそれに問題を抱えないでしょう。

2
Eugene Manuilov