みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

【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; } ?>

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

投稿日時 - 2012-10-08 14:08:17

QNo.7738225

困ってます

質問者が選んだベストアンサー

$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();
?>

投稿日時 - 2012-10-08 19:09:20

お礼

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

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

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

投稿日時 - 2012-10-08 21:47:20

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

うまくいくいかない以前に、Syntax Error が出ているのでは?

投稿日時 - 2012-10-08 18:41:49

お礼

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

投稿日時 - 2012-10-08 21:37:20

あなたにオススメの質問