2013-12-10 106 views
0

我有這段代碼在運行,爲了獲得帖子。如何不顯示具有特定標籤的帖子?

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

我想只返回沒有一些特定標籤的帖子。 我該怎麼辦?

在此先感謝!

回答

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',)))。另外,has_tag()只能在The Loop中使用。(更正度:http://wpseek.com/has_tag/,要求你在The Loop中只有WP版本2.7纔有效。)

+0

你搖滾哥們!它不能更好地工作!非常感謝! –

+0

如果這適用於您,請將答案標記爲** Accepted ** - 問題左側應該有一個複選標記,以便您可以執行此操作。詳細信息請參見[旅遊](http://stackoverflow.com/tour)。 –

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)); 
相關問題