如何在我的自定义分类页面中仅显示标准格式帖子-WordPress 3.8.1

时间:2014-04-02 作者:user3209031

我想从我的自定义分类页面中排除照片和视频类别(ID分别为1和2)。

关于如何从循环中排除这两个类别,有什么建议吗?

<?php
/**
 * Locations taxonomy archive
 */
get_header();
$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) );
?>
<div class="wrapper">
    <div class="primary-content">
        <h1 class="archive-title"><?php echo apply_filters( \'the_title\', $term->name ); ?> News</h1>

        <?php if ( !empty( $term->description ) ): ?>
        <div class="archive-description">
            <?php echo esc_html($term->description); ?>
        </div>
        <?php endif; ?>

        <?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>

        <div id="post-<?php the_ID(); ?>" <?php post_class(\'post clearfix\'); ?>>
            <h2 class="post-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
            <div class="content clearfix">
                <div class="post-info">
                    <p><?php the_time(get_option(\'date_format\')); ?> by <?php the_author_posts_link(); ?></p>
                </div><!--// end .post-info -->
                <div class="entry">
                    <?php the_content( __(\'Full story…\') ); ?>
                </div>
            </div>
        </div><!--// end #post-XX -->

        <?php endwhile; ?>

        <div class="navigation clearfix">
            <div class="alignleft"><?php next_posts_link(\'« Previous Entries\') ?></div>
            <div class="alignright"><?php previous_posts_link(\'Next Entries »\') ?></div>
        </div>

        <?php else: ?>

        <h2 class="post-title">No News in <?php echo apply_filters( \'the_title\', $term->name ); ?></h2>
        <div class="content clearfix">
            <div class="entry">
                <p>It seems there isn\'t anything happening in <strong><?php echo apply_filters( \'the_title\', $term->name ); ?></strong> right now. Check back later, something is bound to happen soon.</p>
            </div>
        </div>

        <?php endif; ?>
    </div><!--// end .primary-content -->

    <div class="secondary-content">
        <?php get_sidebar(); ?>
    </div><!--// end .secondary-content -->

<?php get_footer(); ?>

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

看看你的评论,照片和视频不是自定义的帖子类型,而是类别。我正在修改我的答案以反映你的评论。

您可以使用pre_get_posts 排除循环中的特定类别。你可以通过$query->set( \'cat=-1,-2,-3\' ); 这将排除ID为1、2和3的类别,并仅显示ID为1、2和3以外的类别。

请记住,要排除类别,必须在类别ID前面使用减号(-)。

下面是应该包含在函数中的完整代码。php在分类页面上排除类别

function exclude_category( $query ) {
    if ( !is_admin() && $query->is_tax() && $query->is_main_query() ) {
        $query->set( \'cat\', \'-1,-2,-3\' );
    }
}
add_action( \'pre_get_posts\', \'exclude_category\' );

结束

相关推荐

自定义帖子类型(Jigoshop):实时服务器上$ategory_id(通过$Term->Term_Taxonomy_id)的意外值

我已经拼凑了一个函数,为Jigoshop自定义帖子类型及其相关图像提供类别描述。(product\\u cat image字段由Jigoshop插件实现)。它在本地工作,但在我的服务器上并不总是能找到图像-对于某些(但不是全部)产品,返回的$category\\u id似乎为1。function cyclelux_brand_info() { function get_the_category_bytax( $id = false, $tcat = \'category\' ) {