サポート » 使い方全般 » サイドメニューで条件分岐した内容がアーカイブページで表示されない

  • 解決済 sai_office

    (@sai_office)


    過去記事も探しましたが見つけられなかったので質問させていただきます。
    もし同じ内容ありましたら、申し訳ありませんがそちらも教えていただければ幸いです。

    カテゴリーごとに2列構造のサイドメニューに表示させる内容を変えるために、
    sidebar.phpに以下コードを書いて条件分岐しています。

    <?php if(is_category(3)  ||  $post->post_parent): ?>
    	<section class="side_menu">
    	<p>カテゴリー3</p>
    	<ul class="li_sidemenu">
    	<?php wp_get_archives('type=postbypost&limit=5&cat=3'); ?>
    	</ul>
    	</section><!--end .side_menu-->
    
    <?php elseif(is_category(4)): ?>
    	<section class="side_menu">
    	<p>カテゴリー4</p>
    	<ul class="li_sidemenu">
    	<?php wp_get_archives('type=postbypost&limit=5&cat=4'); ?>
    	</ul>
    	</section><!--end .side_menu-->
    
    <?php else: ?>
    <?php endif; ?>

    記事一覧ページ(カテゴリ一覧ページ)ではうまく分岐されて表示されるのですが、
    アーカイブページ(記事詳細ページ)では何も表示されません。
    表示される方法を教えてください。

    ちなみに、
    archive.phpとcategory.phpともに、
    <?php get_sidebar(); ?>で同じsidebar.phpを読み込んでいます。

    WordPressバージョンは3.1.4です。

    よろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • is_category はカテゴリーページかをチェックする関数です。
    カテゴリーページ以外では常に false となるため、if 文の中が実行されないため表示されていないと思われます。具体的なコードは示せませんが、カテゴリーページ以外でも表示させたい場合は、if 文の条件部分を書き換える必要があります。

    関数リファレンス/is category

    トピック投稿者 sai_office

    (@sai_office)

    ありがとうございます。
    教えていただいた内容をもとに
    is_category(3)をin_category(‘3’) に変えてみたり、
    is_archive()に変えてみたりしていますが、
    アーカイブページ(記事詳細ページ)はまったくの無反応です。

    もう少し探ってみます。

    トピック投稿者 sai_office

    (@sai_office)

    記述が間違っていただけのようで
    is_category(3)をin_category(‘3’) に変更することで解決しました。
    初心者の質問にお答えいただきまして、ありがとうございました!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「サイドメニューで条件分岐した内容がアーカイブページで表示されない」には新たに返信することはできません。