特定の親カテゴリーに属する子カテゴリー
-
いつもお世話になりありがとうございます。
特定の親カテゴリーに属する子カテゴリーを表示をさせたいです。
<?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 7, ) ); foreach($categories as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p> <?php endforeach; ?>
これで親カテゴリー(ID:7)に属する子カテゴリーの一覧は取得できました。
しかし、親カテゴリーに属しているけれども、除外したい子カテゴリーがあります。更に以下を表示させたいです。
●その子カテゴリーの説明(category_description(category);)
●カスタムフィールドでカテゴリーの編集画面に追加した画像
●その子カテゴリーに属する投稿のタイトル一覧御手数をおかけしますが、ご伝授頂けますと幸いです。
よろしくお願いします。
-
自分なりに調べて途中までできました。
<?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 7, 'exclude' => array(8,9,10), ) ); foreach($categories as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p> <p><?php echo $value->description; ?></p> <ul> <?php $postslist = get_posts( "category=$value->term_id & numberposts=100" ); foreach ( $postslist as $post ) { ?> <li><a href=<?php echo get_permalink(); ?>><?php echo $post->post_title; ?></a></li> <?php } ?> </ul> <?php endforeach; ?>
これで、特定の親カテゴリーに属する子カテゴリーで、
一部子カテゴリーを除外し、
子カテゴリーのタイトルと説明と投稿記事の一覧を表示することができました。しかし、カスタムフィールドでカテゴリーの編集画面に追加した画像を表示する方法がわかりません。
何卒宜しくお願いします。カスタムフィールドでカテゴリーの編集画面に追加した画像
WordPress の標準機能ではないので、どのようにしてカテゴリーの編集画面にカスタムフィールドを追加したのかを書かなければ誰も答ることはできません。
pluto1234様
詳細を書かずに質問してすみません。
プラグイン【Advanced Custom Fields】を使用しています。フィールド名:MainImage
フィールドタイプ:画像
返り値:画像URL位置ルールで「分類(追加/編集)でカテゴリー」のみに設定し、
カテゴリーの編集画面にカスタムフィールドを追加しています。ちなみに、上記の条件(特定の親カテゴリーに属する子カテゴリー)でなければこれで表示することができました。
<?php $cat_id = get_queried_object()->cat_ID; $post_id = 'category_'.$cat_id; ?> <img src="<?php the_field( 'MainImage',$post_id); ?>" alt="" />
しかし、どうしても上記の条件で表示させたいです。
宜しくお願いします。どのテンプレートに記述しているのかがわかりません。
上のコード:front-page.php / page.php / category.php / single.php ?
下のコード:category.php / archive,php ?
テンプレートによって、$cat_id = get_queried_object()->cat_ID;
でカテゴリーIDが取れたり取れなかったりするんでは?
どちらもcategory.phpに記述しています。
しかし、上のコードは条件分岐で<?php if (is_category(7)): ?>の中に、
下のコードは<?php else: ?>に記入しています。理解不足な為、上のコード内でのカテゴリーID取得する方法がわからないです。
すみません。宜しくお願いします。何か日本語は伝わりずらいので、PHP語で全部書いてください。
追:
もしかして、else 側に書いているのが悪い(else は不要)?<?php if (is_category(7)): ?> : <?php endif; ?> <?php $cat_id = get_queried_object()->cat_ID; $post_id = 'category_'.$cat_id; ?> <img src="<?php the_field( 'MainImage',$post_id); ?>" alt="" />
わかりづらくてすみません。
めちゃくちゃで分かりづらいかもしれませんが、宜しくお願いします。【category.php】に記述してあります。
<!-- ▼カテゴリ【ID=7】▼ --> <?php if (is_category(7)): ?> <div class="content"> <?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 7, 'exclude' => array(8,9,10), ) ); foreach($categories as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p><p><?php echo $value->description; ?></p> <ul> <?php $postslist = get_posts( "category=$value->term_id & numberposts=100" ); foreach ( $postslist as $post ) { ?> <li><a href=<?php echo get_permalink(); ?>><?php echo $post->post_title; ?></a></li> <?php } ?> </ul> <?php endforeach; ?> </div> <!-- ▲カテゴリ【ID=7】ここまで▲ --> <!-- ▼【ID=7以外】カテゴリ一▼ --> <?php else: ?> <div class="content"> <?php $cat_id = get_queried_object()->cat_ID; $post_id = 'category_'.$cat_id; ?> <?php single_cat_title(); ?> <img src="<?php the_field( 'MainImage',$post_id); ?>" alt="" /> <?php echo category_description(); ?> </div> <?php endif; ?> <!-- ▲【ID=7以外】カテゴリ一ここまで▲ -->
カテゴリーアーカイブで表示したいのが
---------------------------------------------------------------- cat_ID=7 の子供(8,9,10以外)のカテゴリー カテゴリーの付いたポスト一覧 ---------------------------------------------------------------- カテゴリータイトル カテゴリーの写真 カテゴリーの説明 ----------------------------------------------------------------
ということとすると、
<!-- ▼カテゴリ【ID=7】▼ --> <?php if (is_category(7)): ?> <div class="content"> <?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 7, 'exclude' => array(8,9,10), ) ); foreach($categories as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p><p><?php echo $value->description; ?></p> <ul> <?php $postslist = get_posts( "category=$value->term_id & numberposts=100" ); foreach ( $postslist as $post ) { ?> <li><a href=<?php echo get_permalink(); ?>><?php echo $post->post_title; ?></a></li> <?php } ?> </ul> <?php endforeach; ?> </div> <?php endif; ?> <!-- ▲カテゴリ【ID=7】ここまで▲ --> <div class="content"> <?php $cat_id = get_queried_object()->cat_ID; $post_id = 'category_'.$cat_id; ?> <?php single_cat_title(); ?> <img src="<?php the_field( 'MainImage',$post_id); ?>" alt="" /> <?php echo category_description(); ?> </div>
あっと、<div class=”content”> が2つでますね。修正!
<!-- ▼カテゴリ【ID=7】▼ --> <div class="content"> <?php if (is_category(7)): ?> <?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 7, 'exclude' => array(8,9,10), ) ); foreach($categories as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p><p><?php echo $value->description; ?></p> <ul> <?php $postslist = get_posts( "category=$value->term_id & numberposts=100" ); foreach ( $postslist as $post ) { ?> <li><a href=<?php echo get_permalink(); ?>><?php echo $post->post_title; ?></a></li> <?php } ?> </ul> <?php endforeach; ?> <?php endif; ?> <!-- ▲カテゴリ【ID=7】ここまで▲ --> <?php $cat_id = get_queried_object()->cat_ID; $post_id = 'category_'.$cat_id; ?> <?php single_cat_title(); ?> <img src="<?php the_field( 'MainImage',$post_id); ?>" alt="" /> <?php echo category_description(); ?> </div>
すみません!!
私のご質問がわかりづらかったと思います。カテゴリIDが7の時に、カテゴリー7に属する子カテゴリーの
【タイトル】【写真】【説明】
カテゴリIDが7以外の時には、表示しているカテゴリーの
【タイトル】【写真】【説明】をさせたいのです。私が書いたソースだと、
カテゴリIDが7の時に、カテゴリー7に属する子カテゴリーの
【タイトル】【説明】
カテゴリIDが7以外の時には、表示しているカテゴリーの
【タイトル】【写真】【説明】
が表示されているものになります。なので、カテゴリIDが7の時に、カテゴリー7に属する子カテゴリーの【写真】を
表示する方法が知りたいんです。<?php if (is_category(7)): ?> カテゴリー7に属する子カテゴリーの【タイトル】【写真】【説明】【投稿一覧】 <?php endif; ?>
いままでの話はきれいさっぱり忘れて、
<?php $categories = get_terms( 'category', array( 'orderby' => 'count', 'hide_empty' => 0, 'child_of' => 7, 'exclude' => array(8,9,10), ) ); foreach($categories as $value): ?> <p><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?></a></p> <?php $cat_id = $value->term_id; $post_id = 'category_'.$cat_id; ?> <p><img src="<?php the_field( 'MainImage',$post_id); ?>" alt="" /></p> <p><?php echo $value->description; ?></p> <ul> <?php $postslist = get_posts( "category=$value->term_id & numberposts=100" ); foreach ( $postslist as $post ) { ?> <li><a href=<?php echo get_permalink(); ?>><?php echo $post->post_title; ?></a></li> <?php } ?> </ul> <?php endforeach; ?>
$cat_id = get_queried_object()->cat_ID;
ではなく
$cat_id = $value->term_id;
追:
ダメだったときのコードも残っていると3秒くらいでわかったのだが・・。できました!!!!!!
ありがとうございます!!!!色々質問の仕方等ご迷惑をおかけしました。m(__)m
ご丁寧にソースをあげていただき本当に助かりました。
ありがとうございました!!
- トピック「特定の親カテゴリーに属する子カテゴリー」には新たに返信することはできません。