###前提・実現したいこと
バージョン:wordpress 4.8.1
カスタム投稿で使用しているカテゴリーで、親のカテゴリーページへいくと子や孫の記事も一覧で表示されてしまいます。
これを親のみ表示させたいです。
例えば
全国(親)
ー東北(子)
ー関東(子)
ーー東京(孫)
...
というカテゴリーを作ったとして、親である全国のページへいくと、東北や関東、東京の記事も出てきてしまいます。
これを全国だけチェックしている、つまり親カテゴリの記事だけ表示したいです。
カスタム投稿(sample)として、taxonomy-sample_cat.php内でやっています。
いろいろと検索して試してみましたがどうしてもうまくいかなくて、質問しました。
PHPやWPはまだ不慣れな部分もあるのですが、どうかご教授お願いいたします。
###該当のソースコード
taxonomy-sample_cat.php
<?php if(have_posts()): while(have_posts()): the_post(); ?> <h1><?php the_title(); ?></h1> <?php endwhile; ?> <?php endif; ?>
###試したこと
以下2つのコードを検索で見つけて試してみましたが、ダメでした。
どちらもthe_post();より前に記述するようとのことでした。
<?php if (is_category()) { $current_cat = get_query_var('cat'); if ($children = get_categories('child_of='.$current_cat)) { $exclude = array(); foreach ($children as $child) $exclude[] = $child->term_id; query_posts(array('cat' => $current_cat, 'category__not_in' => $exclude)); } } ?>
<?php $cats = get_the_category(); $parent_id = 2;//IDを入れる $exclude = array($parent_id); $term_children = get_terms( 'category', array('child_of' => $parent_id) ); if($term_children){ foreach($term_children as $child){ $exclude[] = $child->term_id; } }; foreach((array)$cats as $cat){ if(!in_array($cat->cat_ID, $exclude)){ echo '<li><a href="' . get_category_link($cat->cat_ID) . '">' . $cat->cat_name . '</a></li>'; } } ?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/27 04:22