サポート » 使い方全般 » カスタム投稿でターム別に一覧表示するには?

  • 解決済 dxc555

    (@dxc555)


    タイトル通りなのですが、カスタム投稿でターム(カテゴリ)別に一覧表示する場合に自動で読み込まれるテンプレートってありますか?

    実装方法は、functions.phpに下記のように書いています。

    function blog_custom_post_type()
    {
        register_post_type( 'blog', array(
            'label'         => 'ブログ',
            'public'        => true,
            'menu_position' => 3,
            'supports'      => array( 'title', 'editor' ),
            'has_archive'   => true,
        ) );
    
        register_taxonomy( 'blog_cat', 'blog', array(
            'label'        => 'カテゴリー',
            'public'       => true,
            'hierarchical' => true,
            'rewrite'      => array(
                'slug'       => 'blog',
                'with_front' => false,
            ),
        ) );
    
        flush_rewrite_rules( false );
    }
    
    add_action( 'init', 'blog_custom_post_type' );

    アーカイブは、archive-blog.phpを自動で読み込みURLはこのようになります。
    ドメイン/date/2012/05/?post_type=blog

    シングルは、single-blog.phpを自動で読み込みURLはこのようになります。
    ドメイン/blog/記事のタイトル/

    アーカイブとシングルは思うように表示できているのですが、カテゴリーごとに一覧表示させる方法がわかりません。

    category-blog.phpとtaxonomy-blog.phpを試してみましたがこれらのファイルは読み込まれず404エラーとなりました。

    ちなみにカテゴリー名がinfoであればURLは、ドメイン/blog/info/としています。

    調べてみたのですが、原因がわからず行き詰っております。お分かりになる方がいれば宜しくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    dxc555さん、こんにちは。

    テンプレートファイルの問題ではなく、URLの競合が問題ではないでしょうか?

    シングルは、single-blog.phpを自動で読み込みURLはこのようになります。
    ドメイン/blog/記事のタイトル/

    ちなみにカテゴリー名がinfoであればURLは、ドメイン/blog/info/としています。

    と、シングルの場合もタクソノミーの場合も
    /blog/******/
    となっていて、URLだけでは ****** の部分が記事のタイトルなのかカテゴリー名なのか判別不可能です。

    まずは、register_taxonomy を rewrite => true としてシンプルなパターンで確認してみてください。

    それから、

    flush_rewrite_rules( false );

    は、比較的重い処理となるため、ここで行うべきではありません。
    動作させたい場合は、管理画面のパーマリンク設定の更新ボタンをクリックすれば良い話です。

    トピック投稿者 dxc555

    (@dxc555)

    お返事ありがとうございます。
    ドメイン/blog/xxx/というURLについては、「blog」の部分が共通なのでこれでは、テンプレートの判別ができないということですね。

    flush_rewrite_rules( false );

    これを消して、register_taxonomyのrewriteを配列からtrueに変更しパーマリンクを更新してみました。

    ドメイン/blog/で全投稿一覧を出力するのですが、これはpage-blogを自動で読み込みました。
    カテゴリー別やシングル記事の表示が404となってしまったのですが、これらはどのようにテンプレートの切り替えを行えばいいのでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿でターム別に一覧表示するには?」には新たに返信することはできません。