4 mins read2022/08/05

讓彙整頁 (Archive) 支援不同的文章類型 (Post Type)


問題 & 狀況

原本看我自己的 WordPress 開發教程,想說為什麼文章數量這麼少

因為我的文章結構是有兩種文章類型 post type 的,一種是文章 ( post ),另一種是教程 ( tutorial ) ,兩者共用同樣的分類 ( categories )與標籤 ( tag )

而 WordPress 預設的分類 & 標籤頁面 ( archive ) 是只會抓 文章 ( post ) 的,不會抓其他的 post type ,才導致我的文章數量這麼少

( 之所以分成兩種 post type 是為了未來文章數量多,比較好區分 )

 

解決辦法

這邊用一隻 Hooks pre_get_posts,讓 WordPress Query 出文章前

使用 set 方法改變它的 Query 語句,把想要的 post type 新增進去,就可以讓我的 archive 頁面也 Query 出教程 ( tutorial )

如果把下方的 tutorial 換成 product 就變成支援產品了


//Query文章時也把其他 CPT 也加進去
add_action('pre_get_posts', 'query_post_type');

function query_post_type($query) {
  if ($query->is_main_query()
    && ( is_category() || is_tag() )) {
        // 把 tutorial 這個自己定義的 post type 加進去
        $query->set( 'post_type', array('post','tutorial') );
  }
}

 

參考資料

覺得不錯的話,請給我點個推薦

您的支持與鼓勵是我們前進的最大動力!