wordpress在首页显示或只显示自定义文章类型

此教程对wordpress企业站比较有用,据阿树的经验,大部分人也用不到,但是阿树本人遇到过 两种情况:

1. 有自定义文章类型,希望自定义文章类型和默认的Post都在首页的主循环中显示。

2.有自定义文章类型(产品),首页主循环中只显示产品。

注意,本教程中只对应首页的主循环,即不适用首页一些侧边栏、或者自定义的文章查询区域。

将下面代码添加到主题的functions.php中即可

  1. function ashuwp_posts_per_page($query){
  2.   //首页或者搜索页的主循环
  3.   if ( (is_home() || is_search()) && $query->is_main_query() )
  4.     //$query->set( 'post_type', array( 'product' ) ); //只显示product
  5.     $query->set( 'post_type', array( 'post', 'product' ) ); //主循环中显示post和product
  6.   return $query;
  7. }
  8. add_action('pre_get_posts','ashuwp_posts_per_page');

利用pre_get_posts钩子,不光可以实现本教程所需要的内容,还可自由发挥,改变主循环的其它一些参数。

比如仅仅想让首页的文章数量显示为5篇。

  1. function ashuwp_posts_per_page($query){
  2.   //仅首页
  3.   if ( is_home()  && $query->is_main_query())
  4.     $query->set('posts_per_page',5);//每页显示5篇
  5.   return $query;
  6. }
  7. add_action('pre_get_posts','ashuwp_posts_per_page');

已有2条评论

  1. 秀女
    秀女 : 回复

    用了这个方法后。是显示自定义类型文章了。可是菜单没有了。文章变成页面了

  2. 张杰的自留地
    张杰的自留地 : 回复

    解决了我的问题。受教了。

发表评论