从WordPress中的循环中排除特定类别

时间:2014-10-18 07:08:14

标签: php wordpress categories

我正在尝试构建一个关于我博客上发生的事情的数据库。我不希望这些帖子出现在首页上,所以我想要排除他们所在的类别,因为它们总是属于同一类别。

你能帮帮我吗?

网站是denfri.dk,我正在使用snap主题(https://thethemefoundry.com/wordpress-themes/snap/),我的循环代码如下所示:

<?php if ( have_posts() ) : ?>
<div class="blog-wrapper" id="content">
    <?php while ( have_posts() ) : the_post(); ?>
        <?php get_template_part( '_post-content' ); ?>
    <?php endwhile; ?>
</div>
<h1 class="hidden">DenFri.dk - nyheder, analyser, satire og kritik</h1>
<?php $prev = get_previous_posts_link( __( 'Nyere indlæg', 'snap' ) ); ?>
<?php $next = get_next_posts_link( __( 'Ældre indlæg', 'snap' ) ); ?>

<?php if ( ( ! empty( $prev ) || ! empty( $next ) ) ) : ?>
    <nav class="pagination post-footer">
        <?php if ( ! empty( $prev ) ) : ?>
            <div>
                <?php echo $prev; ?>
            </div>
        <?php endif; ?>
        <?php if ( ! empty( $next ) ) : ?>
            <div>
                <?php echo $next; ?>
            </div>
        <?php endif; ?>
    </nav>
 <?php endif; ?>
<?php else : ?>
<div class="placeholder-text">

    <p>
        <?php
            printf(
                __(
                    '<strong>Admin:</strong> Oh snap! It looks like you haven\'t added any posts yet. <a href="%s" title="Add post">Add your first post</a> now!',
                    'snap'
                ),
                esc_url( admin_url( 'post-new.php' ) )
            );
        ?>
    </p>
</div>

1 个答案:

答案 0 :(得分:0)

要在首页中添加一个(或多个)类别,请插入以下代码:

function denfri_frontpage_exclude( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'cat', '-5' );
    }
}
add_action( 'pre_get_posts', 'denfri_frontpage_exclude' );

如果您要排除的类别多于一个,请将-5替换为所有以逗号分隔的类别; -5,-1,-3等。