web-dev-qa-db-ja.com

分類法による多重ポスト型アーカイブのためのパーマリンク構造

最近私は高度なWordPressプロジェクトに取り組んでいます、そして私はカスタム投稿タイプのためにパーマリンク構造を変えることで立ち往生しています。

3種類の投稿タイプを作成しました。type1、type2、type3、および分類テストがすべて登録されています。カスタム分類法に3つの用語がありますcat1、cat2、cat3

これが私が達成したいことです。

によってcatからのすべての投稿にアクセスする代わりに

siteurl/test/cat1

以下のように分類猫による各投稿タイプのアーカイブにアクセスしたいです。

siteurl/type1/cat1

8
Abed

これは私のプロジェクトの1つからのパーマリンクのための類似した構造を設定するためのコードの一部です(投稿タイプと分類アーカイブの両方に対して同じベーススラッグ)、両方の投稿の 'has_archive'と 'rewrite'パラメータの値に注意タイプと分類法

add_action( 'init', 'register_my_post_types' );
function register_my_post_types() {

  register_post_type( 'movie',
    array(
        ....

        'has_archive' => 'movies',
        'rewrite' => array(
            'slug' => 'movies/%mv_category%',
            'with_front' => false
        ),
        'taxonomies' => array(
            'mv_category',
        ),
    )
  );

  register_taxonomy(
    'mv_category',
    array(
        'movie'
    ),
    array(
        ...
        'hierarchical' => true,
        'rewrite' => array(
            'slug' => 'movies',
            'with_front' => false,
            'hierarchical' => false
        )
    )
  );
) // end of create_my_post_types function


add_filter('post_type_link', 'filter_post_type_link', 10, 2);
function filter_post_type_link($link, $post)
{
    if ($post->post_type != 'movie')
        return $link;

    if ($cats = get_the_terms($post->ID, 'mv_category'))
        $link = str_replace('%mv_category%', array_pop($cats)->slug, $link);

    return $link;
}

それからあなたはこのURLで映画投稿タイプの「ドキュメンタリー」カテゴリにアクセスすることができます:

site.com/movies/documentary/

「ドキュメンタリー」カテゴリーの「映画A」は次のようになります。

site.com/movies/documentary/movie-a/

注:順序パーマリンクの書き換え規則はWordPressで生成されるため、投稿タイプの後に分類法を登録することが重要です。

1
Parham

自分が実際に整理しようとしていることを理解するのに役立つ具体的な用語がない限り、自分が正しい方向に進んでいるかどうかはわかりませんが、このプラグインはあなたがしようとしていることを達成するのに役立ちますか? http://wordpress.org/extend/plugins/cpt-onomies/

これは、カスタムタイプの投稿タイトルと分類法を奇妙な(そしておそらく有用なのか)方法で組み合わせたものです。

0
mltsy