我正在尝试从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(); ?>
发布于 2015-01-30 21:36:50
下面是解决方法。我不得不将以下内容添加到$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);
?>
https://stackoverflow.com/questions/28242669
复制相似问题