今天在編輯阿湯博客tag頁面的時候,發現頁面模板選項沒有模板內容。
網上找了找資料總結有以下三種情況會導致此問題:
1、有說是WordPress版本問題,下面是引用其中文檔的內容:
WordPress 4.9 有一個重要更新是:在WP后臺編輯主題和插件文件時,支持按層級顯示所有文件。為了性能考慮,使用了 transient 緩存機制。但是卻沒有提供任何手動清除緩存的功能,導致有些用戶升級到 WordPress 4.9 以后,發現“頁面屬性 - 模板”這個功能不能正常使用了,不顯示主題自帶的模板文件!
其實個人覺得版本問題的概率很小,因為我之前也是正常的,只是今天突然想改一下頁面的標題,然后編輯的時候才出現了問題。
當然文檔也給出了解決方案,要么升級版本或者修改主題的functions.php文件,因為這兩個方案操作起來都比較繁瑣,所以沒有去測試。
2、模板文件不存在或者格式不對。
這個首先去檢查了文件是否存在,比如:wp-content/thems/主題/tags.php,然后打開此文件檢查格式是否正確,在文件最開頭是否有如下代碼:
<?php /* Template Name: tags */ ?>
如果沒有手動加上,再進行測試。
3、php環境禁用了scandir函數。
不管你是用的虛擬機還是自己部署的PHP環境,找到php.ini文件,然后找到“disable_functions=”這一行,然后刪除scandir。
然后在網站根目錄新建一個php文件,然后添加:
<?php phpinfo() ?>
然后在瀏覽器訪問此文件,Ctrl+F找到disable_functions,看下剛才的修改是否生效,沒生效需要重啟php-fpm(自己部署PHP環境才需要重啟)。

生效以后再去WordPress頁面查看模板顯示是否正常。
經過測試,阿湯博客頁面模板選項沒有顯示,真是因為php環境禁用了scandir函數導致,修改以后顯示正常。



