此教程對 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');