サポート » 使い方全般 » 条件分岐ができない。

  • 解決済 monhan

    (@monhan)


    現在、WP2.8でのテンプレートを製作中です。

    そこで、一つ問題が有り、わかる方がいらっしゃればお教え願いたいです。

    Blogトップページでの表示と各カテゴリー別の表示方法が違うため、
    テンプレートでtmp_home.php/tmp_cat.phpという物を用意し、
    is_home()やis_archive()を使い、
    トップではtmp_home.phpが表示され、各カテゴリートップではtmp_cat.phpが表示されるようにしようとしています。

    ですが、各カテゴリートップではtmp_cat.phpのみが表示されるのですが、
    blogトップページでは、tmp_home.phpとtmp_cat.phpの両方が表示されます。

    ■index.php内の書き方は以下の通りです。

    <?php if(is_home()): ?>
    <?php include(TEMPLATEPATH.’/tmp_home.php’); ?>
    <?php endif; ?>

    <?php if(is_archive()): ?>
    <?php include(TEMPLATEPATH.’/tmp_cat.php’); ?>
    <?php endif; ?>

    できれば、Blogトップページでは、tmp_cat.phpを表示させたくはないのですが、
    違う方法をお解かりになる方いらっしゃいますでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • mizube

    (@mizube)

    単純に

    <?php if (is_home()) : ?>
    
    <?php elseif (is_archive()) : ?>
    
    <?php endif; ?>

    とすれば OK です。 is_archive() は is_home(), is_category(), is_tag(), is_author(), is_date() などを含むからです。カテゴリー別表示の場合、という条件であれば is_archive() より is_category() の方がより厳密です。

    ちなみにご存知かもしれませんが、わざわざこのような条件分岐をしなくても、お使いのテーマに home.php, archive.php, category.php といった決められた名前のテンプレートファイルを用意するだけで、ご希望の動作をしてくれます。

    monhan

    (@monhan)

    ありがとうございます。

    お教え頂いた2つのやり方で、どちらも成功しました。
    home.php等は自分は知らなかったので、びっくりデス。

    ほんとにありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「条件分岐ができない。」には新たに返信することはできません。