如何不显示带有特定标签的帖子?

时间:2013-12-10 17:32:31

标签: php wordpress tags

我正在运行此代码,以便获取帖子。

<?php if ( have_posts() ) : ?>
<?php // The loop  ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
<?php twentythirteen_paging_nav(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>

我想仅返回没有特定标签的帖子。 我怎么能这样做?

提前致谢!

2 个答案:

答案 0 :(得分:0)

$args=array("tag__not_in"=>array(1,2,3));
$the_query = new WP_Query( $args ); ?>

<?php if ( $the_query->have_posts() ) : ?>

  <!-- the loop -->
  <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><?php the_title(); ?></h2>
  <?php endwhile; ?>

  <?php wp_reset_postdata(); ?>

只需传递标记ID

 array("tag__not_in"=>array(1,2,3));

答案 1 :(得分:0)

您可以使用条件has_tag()功能:

<?php if ( have_posts() ) : ?>
<?php // The loop  ?>
<?php while ( have_posts() ) : the_post(); ?>
  <?php if( ! has_tag( 'tag-name' ) ) : ?>
    <?php get_template_part( 'content', get_post_format() ); ?>
  <?php endif; ?>
<?php endwhile; ?>
<?php twentythirteen_paging_nav(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>

请注意,has_tag()接受单个标记名称或标记数组(因此,如果您要忽略多个标记,则可以在上面的代码中使用if( has_tag( array( 'tag1', 'tag2', 'tag3', ) ) )。此外,{{} 1}}只能在循环中使用。(更正:http://codex.wordpress.org/Function_Reference/has_tag,您在The Loop中的要求仅适用于WP 2.7版。)