前端集合 - 关注前端技术和互联网免费资源

关注前端技术和互联网免费资源

分类儿

页面儿

搜索儿

前端集合 RSS订阅
Home » 技巧应用 » 如何正确地在WordPress首页只显示某个目录文章列表?

如何正确地在WordPress首页只显示某个目录文章列表?

发布者:前端集合 // 发布时间:2014-05-01 19:36:00 // 分类:技巧应用 // 访问: 6,736 次 // 热度:

如何正确地在WordPress首页只显示某个目录文章列表?

最近遇到一个需求:在WordPress首页只显示某个目录的文章列表。

于是上网搜索了下,经过多次测试,找到了正确的,不会对WordPress其他功能有影响的代码:

<?php
function right_exclude_cat( $query ) { 
   if ( $query->is_home() && $query->is_main_query() ) 
        $query->set( 'cat', '11' );
   return $query; 
}
add_filter( 'pre_get_posts', 'right_exclude_cat' );
?>

如果你在首页排除某些目录的显示,把cat对应的id设置成负数即可:

$query->set( 'cat', '-1, -2' );

上面代码正确的关键是is_main_query。is_main_query什么意思呢:

is_main_query() 是一个用来判断当前查询(如果是在循环中)是否主要查询(而不是其他查询)的条件判断函数。
这个函数通常用于在钩子(hooks)中区分一个自定义或者其他查询是否WordPress的主要查询(可能是一个页面,文章,或者是归档)。
is_main_query() 可以和前端查询(主题模板,插件等等)以及管理查询一起用。如果当前查询是主要查询返回True,否则返回false。

如果不加is_main_query(),则会导致WordPress的自定义菜单(menu)无法显示。我一开始就是没加这个条件,搞得我找了好久,都没找出自定义菜单消失的原因。

Tags: Wordpress, wordpress exclude, wordpress首页只显示某目录, wordpress首页排除某目录

Node.js安装npm包出现网络错误的2种解决方案>>  << 说说我佩服的几家牛逼公司
Top