如何移除預設的Hello World及Sample Page


在安裝完WordPress後, 常會出現下圖之第一篇文章Hello World! 哈囉!, 以及第一個範例頁面(Sample Page)。要直接在WP管理介面砍這些東西很簡單, 但如果是架成多網站型的WP大概就會操作多一些, 其實也沒多少工啦, 就是煩而已。

大概的想法有三種, 第一種是寫sql直接到後台資料庫撈一撈自動砍。第二種是寫成外掛自動啟用就可以砍, 這個倒是可以說明一下, 想自己寫獨立外掛要懂一些格式與寫法, 但如果要寄生在別人的外掛或常用的官方外掛上, 或者是自己每個網站都會用到的外掛上, 不會太困難, 方法就跟第三種一樣找對地方塞就對了。第三種就是因為我很懶, 直接放在一個佈景主題裡面, 或者是根佈景主題。

1. 先找到佈景主題, 我是用eSell

2. 用CuteFTP連過去後台找到佈景主題的位置,  /htdocs/wp-content/themes/esell

隨便塞, 就functions.php好了。

3. 先實驗性地敲個 wp_delete_post(1); 然後儲存, 重整頁面前台與後台。

4. 前台不見了, 但為何會出現404呢? 那是因為我網址還停留在原本的頁面ID所致, 隨便點個頁面再回來就不存在了。

5. 後台連丟到垃圾桶都不丟就直接砍光。

6. 剩下範例頁面, 後來查了WP官方開發文件, 發現它最新也是用wp_delete_post()函式來處理, 不用管後台頁面是放在哪個位置哪個順序, 不用管他是英文的還是中文的, 就是ID等於2。 那就簡單了, 回去步驟3加入wp_delete_post(2); 

7. 前台消失了

8. 後台也不見了, 完工。

9. 深入的研究, 到底那些預設的文章及頁面藏在哪裡啊? 如果你是架多網站, 這個你就看一看吧, 或者等我有空寫好放上來給大家下載。
/htdocs/wp-admin/includes/upgrade.php 裡面大概130行有個function wp_install_defaults() 全都定義在這裡, 只是對於現況已經產生的預設頁面不會馬上生效而已, 要等下次更新WP才動作(理論上)。 

9-1. 只要把First post的程式片段註解掉, 其實他就不會出現Hello World了。

9-2. 這裡有Hello World的文章抬頭, 裡面的寫法蠻值得參考的, 因為後面參考很多人是跟這個大同小異。

9-3. 這裡就是放範例頁面Sample Page , 動一動手腳, 你想弄甚麼預設的頁面就可弄出來, 這對於一直架多網站倒是很方便, 不只砍範例頁面或Hello World, 連要一併產生甚麼都可以好好運用。

10. 有個概念是把這寫法放到
/htdocs/wp-admin/includes/upgrade.php裡面, 每次升級WP就清一清。是不是? 別人就是寫個程式片段讓你去覆蓋步驟9中提到的函式。

11. 參考: 不過大家都寫得好複雜…

https://codex.wordpress.org/Function_Reference/wp_delete_post
https://developer.wordpress.org/reference/functions/get_page_by_path/
https://wordpress.stackexchange.com/questions/1714/initialization-script-for-standard-aspects-of-a-wordpress-website 這MikeSchinkel 老兄寫得不錯但他想做是更複雜的自動化安裝, 但…沒寫完, 也沒寫到我要的, 只好自己想辦法。
https://chrisblackwell.me/delete-wordpress-sample-content-automatically/