缩略图库:仅显示主要类别,而不显示子类别

时间:2013-07-11 19:16:13

标签: php wordpress categories

我正在使用eList wordpress主题。

现在在主页面上,列出了所有列出的类别的缩略图。现在,在主题上您将看到他们在类别下没有子类别,只有列表

现在在我的主题中,我有子类别,主题确实为此做了规定。查看我的网站here以及标题中搜索栏旁边的下拉列表,了解我对子类别的含义

问题:

我如何仅在主页上列出MAIN类别,而不是主要类别的子类别?

以下是控制缩略图的主页部分的代码:

<?php
    $elist_categories_args = array( 'hide_empty' => 0 );

    if ( 'on' == get_option('elist_listings_hide_empty') ) $elist_categories_args['hide_empty'] = 1;

    if ( is_tax() ) {
        $et_term = get_queried_object();
        $elist_categories_args['child_of'] = $et_term->term_id;
    }

    $categories = get_categories( 'taxonomy=listing-category' );

    $elist_listing_categories = get_terms( 'listing_category', apply_filters( 'listing_categories_args', $elist_categories_args ) );
    $elist_category_images = false !== get_option( 'elist_category_images' ) ? (array) get_option( 'elist_category_images' ) : array();
    $et_count = 0;

    if ( $elist_listing_categories ){ ?>
        <section id="listing-categories">
            <div class="container clearfix">
                <h1><?php esc_html_e( 'Listing Categories', 'eList' ); ?></h1>
                <?php foreach( $elist_listing_categories as $elist_listing_category ) { ?>
                    <?php
                        $et_current_term_query = new WP_Query( 
                            array(
                                'post_status' => 'publish',
                                'tax_query' => array(
                                        array(
                                            'taxonomy' => 'listing_category',
                                            'field' => 'id',
                                            'terms' => $elist_listing_category->term_id
                                        )
                                    )
                            )
                        );
                    ?>

                    <?php $et_count++; ?>
                    <div class="l-category<?php if ( $et_count % 3 == 0 ) echo ' last'; ?>">
                        <?php $et_listing_category_link = get_term_link( $elist_listing_category ); ?>
                        <?php if ( isset( $elist_category_images[$elist_listing_category->term_id] ) && '' != $elist_category_images[$elist_listing_category->term_id] ) { ?>
                            <div class="thumb">
                                <a href="<?php echo esc_url( $et_listing_category_link ); ?>">
                                    <img class="item-image" alt="<?php echo esc_attr( $elist_listing_category->name ); ?>" src="<?php echo esc_attr( et_new_thumb_resize( et_multisite_thumbnail( $elist_category_images[$elist_listing_category->term_id] ), 70, 70, '', true ) ); ?>"/>
                                    <span class="overlay"></span>
                                </a>
                            </div>  <!-- end .thumb -->
                        <?php } ?>
                        <div class="description">
                            <h2><a href="<?php echo esc_url( $et_listing_category_link ); ?>"><?php echo esc_html( $elist_listing_category->name ); ?></a></h2>
                            <p class="info"><?php if ( 1 == $et_current_term_query->found_posts ) printf( __('%d Listing','eList'), $et_current_term_query->found_posts ); else printf( __('%d Listings'), $et_current_term_query->found_posts ); ?></p>
                            <?php if ( '' != $elist_listing_category->description ) { ?>
                                <p><?php echo esc_html( $elist_listing_category->description ); ?></p>
                            <?php } ?>
                        </div> <!-- end .description -->    
                    </div> <!-- end .l-category -->
                <?php } ?>
            </div> <!-- end .container -->
        </section> <!-- end #listing-categories -->
<?php } ?>

为了找出上面的代码,这里是包含动态填充缩略图的html部分:

<div class="l-category<?php if ( $et_count % 3 == 0 ) echo ' last'; ?>">
                        <?php $et_listing_category_link = get_term_link( $elist_listing_category ); ?>
                        <?php if ( isset( $elist_category_images[$elist_listing_category->term_id] ) && '' != $elist_category_images[$elist_listing_category->term_id] ) { ?>
                            <div class="thumb">
                                <a href="<?php echo esc_url( $et_listing_category_link ); ?>">
                                    <img class="item-image" alt="<?php echo esc_attr( $elist_listing_category->name ); ?>" src="<?php echo esc_attr( et_new_thumb_resize( et_multisite_thumbnail( $elist_category_images[$elist_listing_category->term_id] ), 70, 70, '', true ) ); ?>"/>
                                    <span class="overlay"></span>
                                </a>
                            </div>  <!-- end .thumb -->
                        <?php } ?>
                        <div class="description">
                            <h2><a href="<?php echo esc_url( $et_listing_category_link ); ?>"><?php echo esc_html( $elist_listing_category->name ); ?></a></h2>
                            <p class="info"><?php if ( 1 == $et_current_term_query->found_posts ) printf( __('%d Listing','eList'), $et_current_term_query->found_posts ); else printf( __('%d Listings'), $et_current_term_query->found_posts ); ?></p>
                            <?php if ( '' != $elist_listing_category->description ) { ?>
                                <p><?php echo esc_html( $elist_listing_category->description ); ?></p>
                            <?php } ?>
                        </div> <!-- end .description -->    
                    </div> <!-- end .l-category -->

1 个答案:

答案 0 :(得分:1)

鉴于提供的代码,似乎有两种可能性。

1)Modify WP_Query arguments

$et_current_term_query = new WP_Query( 
    array(
        'post_status' => 'publish',
        'tax_query' => array(
                array(
                    'taxonomy' => 'listing_category',
                    'field' => 'id',
                    'terms' => $elist_listing_category->term_id,
                    'include_children' => false // <--- ADD THIS
                )
            )
    )
);

2)Modify the listing terms call used with get_terms

$elist_categories_args = array( 'hide_empty' => 0, 'parent' => 0 ); // ADD parent