今天在编辑阿汤博客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函数导致,修改以后显示正常。