此教程对 WordPress 企业站比较有用,据阿树的经验,大部分人也用不到,但是阿树本人遇到过 两种情况:
1. 有自定义文章类型,希望自定义文章类型和默认的 Post 都在首页的主循环中显示。
2. 有自定义文章类型 (产品),首页主循环中只显示产品。
注意,本教程中只对应首页的主循环,即不适用首页一些侧边栏、或者自定义的文章查询区域。
将下面代码添加到主题的 functions.php 中即可
- function ashuwp_posts_per_page($query){
- //首页或者搜索页的主循环
- if ( (is_home() || is_search()) && $query->is_main_query() )
- //$query->set( 'post_type', array( 'product' ) ); //只显示 product
- $query->set( 'post_type', array( 'post', 'product' ) ); //主循环中显示 post 和 product
- return $query;
- }
- add_action('pre_get_posts','ashuwp_posts_per_page');
利用 pre_get_posts 钩子,不光可以实现本教程所需要的内容,还可自由发挥,改变主循环的其它一些参数。
比如仅仅想让首页的文章数量显示为 5 篇。
- function ashuwp_posts_per_page($query){
- //仅首页
- if ( is_home() && $query->is_main_query())
- $query->set('posts_per_page',5);//每页显示 5 篇
- return $query;
- }
- add_action('pre_get_posts','ashuwp_posts_per_page');