Last Updated on 2021-10-17 by Clay
在使用 WordPress 架設網站的過程中,我們可能早就發表了數也數不清數量的文章。那麼,若有一天,我們需要取得所有發表過的文章資訊時,究竟應該要怎麼做呢?
在 WordPress 中,能取得所有文章資訊的方法有很多種,比方說網路上流傳最廣的 REST API 、或使用 PHP 函式來取得文章資訊。這些都不失為一種好方法。
不過實際上, WordPress 後台是能直接匯出文章相關資訊的。若再配合一些程式碼刪除匯出資訊中不必要的 XML 標籤,便能快速取得文章標題。
以下,本文使用 Python 的正規表示式(Regular Expression)來處理 WordPress 匯出的 XML 檔案。前後花費不超過十分鐘,十分方便快速。(註:是指在電腦中已經安裝有 Python 的情況下)
取得文章數量以及名稱
實際上我們能從匯出的 XML 檔案中取得相當多的資訊。為了方便示範,以下只取文章編號以及文章標題。
Step 1: 從 WordPress 後台匯出文章資訊
首先來到 wp-admin 的後台,從左側選項中選擇『工具』>『匯出程式』。
接著,選擇匯出的項目。在這裡,我只會匯出了已發佈的文章資訊,意味著草稿將不存在我匯出的 XML 檔案中。
下載的速度通常很快,畢竟很多時候才小小幾 MB 而已。
打開下載後的 XML 檔案,應該會長得像以下圖片:
Step 2: 使用程式刪除不必要的標籤(以 Python 為例)
仔細觀察,應該會發現在這份 XML 檔案中,所有的文章標題都有著以下這樣的格式:
<title><![CDATA[文章標題]]></title>
所以我們可以直接使用正規表示式(Regular Expression)取得標籤中的文章標題。
# coding: utf-8
import re
def main():
text = open("YOUR_WORDPRESS_WEBSITE.xml", "r").read()
matches = re.findall("<title><!\[CDATA\[(.+)\]\]></title>", text)
for index, item in enumerate(matches, 1):
print(index, item)
if __name__ == "__main__":
main()
Output:
這樣一來就能取得所有發表過的文章標題了。當然,若你想取得其他資訊,就需要觀察 XML 檔案中的資訊格式了。
References
- https://developer.wordpress.org/reference/functions/get_posts/
- https://stackoverflow.com/questions/35728943/wordpress-rest-api-v2-return-all-posts