首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wordpress排除类别帖子,但保留每页的帖子计数

Wordpress排除类别帖子,但保留每页的帖子计数
EN

Stack Overflow用户
提问于 2011-08-31 01:30:16
回答 1查看 455关注 0票数 1

所以我从一个博客页面中排除了几个类别的帖子(类别4-11)。

我使用以下代码来完成此操作:

代码语言:javascript
运行
复制
if (have_posts()) : while (have_posts())  : the_post(); 
    $category = get_the_category();


     if($category[0]->cat_ID > 11 || $category[0]->cat_ID < 4){
        continue;
     }

这将从页面中排除类别帖子,但它不会保留每页的帖子计数为10或在Admin中设置的任何值。

对于我在Wordpress循环中跳过的帖子,我如何以编程方式将帖子计数减1,这样我就排除了我不想要的类别帖子,但又保留了每页相同数量的帖子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-31 02:11:45

要做到这一点,最简单(但不是最有效)的方法是使用category__in...

代码语言:javascript
运行
复制
global $wp_query;
$wp_query = new WP_Query(array("category__in"=>array(4,5,6,7,8,9,10,11)));

...then执行循环...

代码语言:javascript
运行
复制
while (have_posts()){
     the_post();

     //etc..
}

这将使分页准确,并且您可以依赖于高级模板函数,如next_posts_link()

也许一种更有效的方法(不丢弃和替换$wp_query)是在执行原始查询之前将其搞乱……

代码语言:javascript
运行
复制
 add_action('parse_query', 'my_parse_query');
 function my_parse_query(&$q){
      //decide if you want to mess with the query....
      //if not, return
      $q->set_query_var("category__in", array(4,5,6,7,8,9,10,11));
 }

每个查询都会调用my_parse_query,包括针对页面和单个帖子的查询,因此您必须向函数添加一些逻辑,以便只在有意义的地方添加category__in

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7247314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档