WordPress REST API v2抓取特定標籤或類別文章

最近有個需求是要爬公司部落格的文章到官網顯示。搜尋一下,知道WordPress有Rest API,非常簡單就可以達成需求。

https://your.domain/wp-json/wp/v2/posts

如此會顯示一頁10則資料。可以加入page query來指定頁數,或per_page query指定一頁顯示幾則。其他還有offset 跟 order 的功能,有興趣可以看官網文件:

但官網上並沒有想要顯示所有的文章,只想要顯示一個類別或包含一個標籤的文章。於是我們需要可以透過標籤或類別來過濾的功能。稍微Google一下,會發現有個 ?filter[tag]=xxx 的query,不過這是舊版的,從WordPress 4.7以後就移除filter了。新版為:

https://your.domain/wp-json/wp/v2/posts?tags=4

tags無法填入文字,而是必須填id,這個id可以從資料庫的wp_terms表裡面找到:

ID就是term_id欄位的數字

當要取id為1跟3的tag時,就用逗點分開即可。另外類別filter的query如下:

https://your.domain/wp-json/wp/v2/posts?categories=5,1

分類一樣是填入id,一樣可從wp_terms裡去找到。其他還有很多filter,有興趣可以看一下官方文件:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料