サポート » 使い方全般 » 記事に属するカテゴリーの記事一覧(ローカルメニュー)

  • 解決済 lilico

    (@meiico)


    記事ページにローカルメニューをつくりたいと思っています。
    エントリーしているカテゴリーの記事一覧について教えてください。

    例えば以下のようなカテゴリーを設定しています。

    ■食料
     └フルーツ
     └野菜
    ■家電
     └暖房器具
     └掃除用品

    —-
    記事タイトル:オレンジジュース
    親カテゴリー:食料
    子カテゴリー:フルーツ
    —-

    この場合、オレンジジュースの記事内に以下のようなメニューをつくりたいです。
    食料(親カテゴリー)
     ・フルーツ(子カテゴリー)
      └オレンジジュース(記事1)★カレント
      └イチゴジュース(記事2)
     
     ・野菜
      └トマトジュース
      └にんじんジュース

    ※家電のカテゴリー一覧は表示せずに、食料に属する子カテゴリーと記事一覧を表示させたいと思っています。

    以下のhtmlソースのような表示にしたいのですが、
    なかなかうまくいかずに苦戦しています。

    <nav class="local-navimain">
    	<h2>食料</h2>
    		<h3>フルーツ</h3>
    		<ul>
    		<li class="current"><a href="index.html">1.オレンジジュース</a></li>
    		<li><a href="1-2.html">2.イチゴジュース</a></li>
    		</ul>
    		<h3>野菜</h3>
    		<ul>
    		<li><a href="2-1.html">1.トマトジュース</a></li>
    		<li><a href="2-2.html">2.ニンジンジュース</a></li>
    		</ul>
    	</nav>

    どうにも苦戦しております、、
    教えていただければ幸いです。どうぞよろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 천궁 메텔

    (@digitmaetel)

    要するに、
    食料カテゴリーの記事の場合は、家電カテゴリーの一覧をウィジェットに表示しないようにしたい、ということですか?

    トピック投稿者 lilico

    (@meiico)

    はい、その通りです。
    家電カテゴリーに属す記事の場合は家電カテゴリーの記事一覧を表示したいです。

    천궁 메텔

    (@digitmaetel)

    ウィジェットのカテゴリーの表示を変えるということだったら、ウィジェットの『公開範囲』を活用することで容易です。

    尚、ちょうど週末に、そのようなサイト構築をする新しいサイトを作るところなのでサンプル提示できると考えてます。

    トピック投稿者 lilico

    (@meiico)

    ご回答ありがとうございます。
    いろいろと試してみたところ、以下のソースで少し前進しました。
    ただ、カレント表示できない状態です。。。
    よろしければサンプルを拝見できれば嬉しいです。

    お手数ですが、どうぞよろしくお願いいたします。

    <nav class="local-navimain">
    <h2><?php $cat = get_the_category(); $cat = $cat[1]; { echo $cat->cat_name; } ?></h2>
    <?php $cat_info = get_the_category();
    $cat_term = $cat_info[0] -> category_parent;
    $cat_info = get_categories('child_of='.$cat_term.'&orderby=order');
    foreach ($cat_info as $category) { if($category->count != 0) : ?>
    <h3><?php echo $category->cat_name; ?></h3>
    <ul>
    <?php query_posts('posts_per_page=-1&order=ASC&category__in='.$category->term_id);
    if (have_posts()) : while (have_posts()) : the_post();
    ?>
    <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
    <?php endwhile;wp_reset_query();endif;endif; ?>
    </ul>
    <?php }; ?>
    	</nav>
    トピック投稿者 lilico

    (@meiico)

    試行錯誤で自己解決しました。

    <nav class="local-navimain">
    <h2><?php $cat = get_the_category(); $cat = $cat[1]; { echo $cat->cat_name; } ?></h2>
    <?php
    $cat_info = get_the_category();
    $cat_term = $cat_info[0] -> category_parent;
    $cat_info = get_categories('child_of='.$cat_term.'&orderby=order');
    $post_id = $post->ID;
    foreach ($cat_info as $category) { if($category->count != 0) : ?>
    <h3><?php echo $category->cat_name; ?></h3>
    <ul>
    <?php query_posts('posts_per_page=-1&order=ASC&category__in='.$category->term_id);
    if (have_posts()) : while (have_posts()) : the_post();
    ?>
    <?php
    $class = '';
    if ($post_id == $post->ID){ $class = 'class="current" '; }
    ?>
    <li <?php echo $class ?>><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile;wp_reset_query();endif;endif; ?>
    </ul>
    <?php }; ?>
    	</nav>

    こちらのサイトを参考にしました
    https://wordpress.org/support/topic/query_posts-add-class-current-page-child?replies=5

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「記事に属するカテゴリーの記事一覧(ローカルメニュー)」には新たに返信することはできません。