Skip to content

[WordPress] 取得所有發表過的文章

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


Read More

Leave a Reply