类别缩略图显示-如何仅显示主类别

时间:2013-07-11 作者:DextrousDave

我正在使用eList wordpress主题。

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

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

Question:

How do I only list the MAIN categories on the home page, and NOT the sub-categories of the main categories as well?

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

<?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 -->

2 个回复
SO网友:TheDeadMedic

理想情况下,将其放置在插件中(以便在更新主题时不会被覆盖):

function wpse_106185_elist_categories( $args ) {
    return $args + array(
        \'depth\' => 1,
    );
}

add_filter( \'listing_categories_args\', \'wpse_106185_elist_categories\' );
或者,快速修复方法是编辑此行。。。

$elist_categories_args = array( \'hide_empty\' => 0 );
去。。。

$elist_categories_args = array( \'hide_empty\' => 0, \'depth => 1 );

SO网友:Brad Dalton

将此粘贴到子主题函数的末尾。php文件

function fb_filter_child_cats($query) {

$cat = get_term_by(\'name\', $query->query_vars[\'category_name\'], \'category\');
$child_cats = (array) get_term_children( &$cat->term_id, \'category\' );
// also possible
// $child_cats = (array) get_term_children( get_cat_id($query->query_vars[\'category_name\']), \'category\' );

if ( !$query->is_admin )
    $query->set( \'category__not_in\', array_merge($child_cats) );

return $query;
}
add_filter( \'pre_get_posts\', \'fb_filter_child_cats\' );
来源:http://wpengineer.com/876/exclude-subcategories-in-a-loop/

结束

相关推荐

在index.php上提取WordPress 3.5中的图库图像

我正在尝试为每个图库帖子在我的首页添加一个滑块,但我在使用以下代码从图库中提取图像时遇到一些问题:$post_content = get_the_content(); preg_match(\'/\\[gallery.*ids=.(.*).\\]/\', $post_content, $ids); $array_id = explode(\",\", $ids[1]); 问题是,每个图库帖子都包含一段文字,“阅读更多”休息和休息后的图库,因此get_the_content() 跳