我正在尝试从wp_count_posts()中排除某个类别。我发现了数百个帖子,解释了如何针对特定帖子类型执行WP_Query并获取类别,然后排除具有特定术语或标签的帖子。
但是,如何从特定的帖子类型中排除几个类别并不是非常公开。一旦我这样做,我还需要返回一个帖子计数
请参阅下面我正在使用的内容。寻找一种替代方法来做我下面的事情,这将允许我排除3个特定类别。
<?php
$count_posts = wp_count_posts('sponsors');
$published_posts = $count_posts->publish;
$count = $published_posts/7;
$args = array(
'posts_per_page' => -1,
'post_type' => 'sponsors'
);
query_posts($args);
?>
<?php if( have_posts() ) : $i = 0; $f =7; $countr=0; $z = 0;?>
<div class="gallery-sponsors">
<strong class="title">Special Thanks To Our Sponsors</strong>
<div class="mask">
<div class="slideset">
<?php for ($k = 1; $k <= $count; $k++):
$countr = $countr+$f;?>
<?php if ($k==1):?>
<?php else:?>
<?php $i = $i+$f;?>
<?php endif;?>
<div class="slide">
<ul class="sponsors-list">
<?php $z=0;?>
<?php while (have_posts()) : the_post(); ?>
<?php $z++; if ($z<=$countr and $z>$i): ?>
<li>
<div class="img-hold">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'sponsors-gallery-home' ); ?><?php echo $z;?></a>
</div>
</li>
<?php endif;?>
<?php endwhile; ?>
</ul>
</div>
<?php endfor;?>
</div>
</div>
<nav class="pagination"><?php $k =0;?>
<ul>
<?php while ($q<$count-1): $q++;?>
<?php if ($q==1):?>
<li class="active"><a href="#"><?php echo $q;?></a></li>
<?php else:?>
<li><a href="#"><?php echo $q;?></a></li>
<?php endif;?>
<?php endwhile;?>
</ul>
</nav>
</div>
<?php endif;?>
<?php wp_reset_query(); ?>
答案 0 :(得分:0)
这是解决方法。我不得不将以下内容添加到$ args。
'cat' => '-71,-72,-73'
非常简单,但这些关于如何使用wp_count_posts()执行此操作的文档很少。这是我的完整解决方案。
<?php
$count_posts = wp_count_posts('sponsors');
$published_posts = $count_posts->publish;
$count = $published_posts/7;
$args = array(
'posts_per_page' => -1,
'post_type' => 'sponsors',
'cat' => '-71,-72,-73'
);
query_posts($args);
?>