0

このコードでメニューを表示しています:

    <!--  Subcategory menu from current category -->
    <ul class="sub-menu">
    <?php
        if (is_home()) {
            wp_list_categories('orderby=id&title_li=&depth=1');
        }
        else{
            $category = get_the_category();
            $cat_term_id = $category[0]->term_id;
            $cat_category_parent = $category[0]->category_parent;
            $listcat = wp_list_categories('echo=0&child_of='.$cat_category_parent.'&title_li=&orderby=order&order=ASC');
            $listcat = str_replace("cat-item-".$cat_term_id, "cat-item-".$cat_term_id." current-cat", $listcat);
            if ( in_category( $cat_term_id ) || post_is_in_descendant_category( $cat_term_id )) {
                echo $listcat;
            }
        }
    ?>

そして、そのメニューの各liは、これを使用して投稿タイトルを表示します。

    <!--  Post list from current category -->
    <div class="menu_list">
    <ul id="submenu_productos" class="clearfix">
        <?php
            $IDOutsideLoop = $post->ID;
            while( have_posts() ) {
                the_post();
                foreach( ( get_the_category() ) as $category )
                    $my_query = new WP_Query('category_name=' . $category->category_nicename . '&orderby=date&order=DESC&showposts=100');
                if( $my_query ) {
                    while ( $my_query->have_posts() ) {
                        $my_query->the_post(); ?>
                        <!-- this line to hightlight current post in the category page -->
                <li<?php if ( $post->ID == $wp_query->post->ID ) { echo ' class="test"'; } else {} ?>>
                    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                </li>
        <?php
                }
            }
        }
        ?>
    </ul>
    </div>

メニューはうまく機能し、次のように表示されます。

ここに画像の説明を入力してください

問題は、そのカテゴリ/サブカテゴリに属する​​投稿が1つある場合、それもリストに表示されることです... 1つのアイテムしかない場合は、非表示にします。

ここに画像の説明を入力してください

サブカテゴリに投稿が1つしかない場合に、それを非表示にする方法はありますか?

PD:これをwordpress.stackexchange.comに載せ​​るように言わないでください、私はいつもそこに答えなしで投稿します、そしてここで人々はいつも私を助けてくれます...

4

1 に答える 1

1

以下を使用して、サブメニューの項目数を数えることができます。

$count = $my_query->post_count;

if条件に追加することをお勧めします:

if( $my_query && $my_query->post_count > 1)

それはうまくいくはずです

于 2012-11-23T10:45:51.417 に答える