dポイントプレゼントキャンペーン実施中!

【WordPress】 投稿がないカテゴリー 非表示 方法

カテゴリーの1つを決め
すべての子カテゴリーと投稿を表示させる際に、
子カテゴリー内に投稿がない場合、
子カテゴリー名を表示させないようにしたいです。

下記のソースでうまくいきませんでした。

<?php
$chihirdren=get_categories( 'parent=5&hide_empty=0&orderby=slug&order=DESC');
foreach($chihirdren as $child){
?>
<?php if(have_posts()):?>
<h2><?php echo $child->cat_name ?></h2>
<?php else: // no post ?>
<?php endif; ?>
<?php $wp_query->query(array('cat'=>$child->cat_ID,'posts_per_page'=>-1));
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<h3><?php the_title(); ?></h3>
<?php endwhile; } ?>

大変申し訳ございません。
ご教授をお願いいたします。。

A 回答 (2件)

$wp_query->query(array('cat'=>$child->cat_ID,'posts_per_page'=>-1));


がおかしいのですが、Syntax Error にはならないようですね。気持ち的には
$wp_query = new WP_Query(array('cat'=>$child->cat_ID,'posts_per_page'=>-1));
でしょうか?

get_posts() を使うと以下のようになります。

<?php
$children=get_categories('parent=5&hide_empty=1&orderby=slug&order=DESC');
foreach($children as $child){
?>
<h2><?php echo esc_html($child->cat_name); ?></h2>
<?php
$my_posts = get_posts(array('cat'=>$child->cat_ID,'numberposts'=>-1));
foreach ($my_posts as $post) {
setup_postdata($post);
?>
<h3><?php the_title(); ?></h3>
<?php
}
}
wp_reset_postdata();
?>
    • good
    • 0
この回答へのお礼

こちらのコードで正常に動作確認いたしました!
ありがとうございます!

ずっと調べていたのですが見つけられず。。
藁をもつかむ気持ちで質問させて頂きました。
修正コードまで書いて頂き大変ありがとうございます!

自分ももっと勉強し皆様に貢献できるように頑張ります!
本当にありがとうございました!

お礼日時:2012/10/08 21:47

「投稿がないカテゴリー 非表示 方法」は、hide_empty=1



うまくいくいかない以前に、Syntax Error が出ているのでは?
    • good
    • 0
この回答へのお礼

hide_empty=1 に するんですね!
ありがとうございました!

お礼日時:2012/10/08 21:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!