サポート » テーマ » 個別記事にindex.phpが適用されてしまう

  • 解決済 sarasarari

    (@sarasarari)


    下記を、それぞれ記事の一覧ページとし、
    ■category-blog.php
    ■category-news.php

    下記を、上記に対する個別記事ページとしたいと思っています。
    ■single-blog.php
    ■single-news.php

    categoryページの方はうまくいくのですが、
    singleページの方はうまくいかず、かわりにindex.phpをテンプレートとして
    読みにいってしまい、困っております。

    どなたか教えていただけませんでしょうか?

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

    (@jim912)

    個別投稿表示の際のテンプレート名にカテゴリーを適用することはできません。

    テンプレート階層 個別投稿表示

    in_category を用いて、single.php のテンプレート内で分岐処理をしてください。

    トピック投稿者 sarasarari

    (@sarasarari)

    jim912様
    ご回答をいただき、ありがとうございました。

    素人なもので、お恥ずかしいのですが、
    in_categoryを用いた分岐の書き方がわからず・・・

    single-blog.php、single-news.phpは、レイアウトは同じものなのですが、
    表示するヘッダー画像と、サイドバーを違うものを表示したく、
    single.phpに、以下のように書いてみました。

    <?php if ( in_category(‘1’) ) {
    include(TEMPLATEPATH . ‘news.php’);
    } else if ( in_category(’13’) ) {
    include(TEMPLATEPATH . ‘blog.php’);
    } else {
    include(TEMPLATEPATH . ‘base.php’);
    } ?>

    この状態で確認すると、エラーが出てしまいます。

    トピック投稿者 sarasarari

    (@sarasarari)

    jim912様

    連投で申し訳ありません。

    single.phpの記述を、

    <?php
    $post = $wp_query->post;
    if ( in_category(‘1’) ) {
    include(TEMPLATEPATH.’/news.php’);
    } else {
    include(TEMPLATEPATH.’/blog.php’);
    }
    ?>

    このようにしたところ、うまく表示ができました。
    ただ、newsや、blogに子カテゴリや孫カテゴリがあった場合に
    うまくいきません。
    そのような場合はどうしたらよいでしょうか?

    恐れ入りますが、ご教授お願いいたします。

    モデレーター jim912

    (@jim912)

    get_the_category でカテゴリーを取得し、cat_is_ancestor_of で判定するのがよいかと思います。

    トピック投稿者 sarasarari

    (@sarasarari)

    jim912様
    ご回答をありがとうございました。

    ご指摘の通りに、もう一度やってみます。
    ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「個別記事にindex.phpが適用されてしまう」には新たに返信することはできません。