wordpress不通过修改php.ini函数中的scandir对页面模板进行应用的方法

发布于 2019-08-30  1023 次阅读


声明,本文基于L2H大佬WORDPRESS–免修改SCANDIR添加模板页面中的方式,由于该文章的部分图片无法正常显示,本人以自己的理解对该方法进行了复现,同时感谢大佬提供了该问题的可行的解决方法。

这个是用来解决什么问题的

解决在部分主题下,本该显示的页面模板因php.ini中禁用了scandir而导致模板无法正常显示。

为什么要使用这么麻烦的办法

部分虚拟主机无法更改php.ini但是又要使用页面模板,并且可以通过phpmyadmin对数据库进行修改,即可通过修改postmeta的方式来完成。

准备工作

如果你可以通过自己的方法找到你需要的模板文件的位置,将这个文件复制到该主题的根目录下,本人没有对文件存放于其他位置的可行性进行验证。
如果你不知道如何找到模板文件或什么是你需要的模板文件,这里提醒一下模板文件大多是以page开头的php文件,比如page-links.php。

找到以后新建一个页面,这个页面将会是你模板应用的页面,本质上不需要进行任何其他操作,创建一个新页面即可。如果你采用的是带有postID的固定连接,那么记录下连接里面的postID,为一串数字。

正式开始

打开phpmyadmin,如果在上一步中找到了正确postID那么可以跳过这一小段。不知道postID的可以通过打开wp_post,并且拉到最后一页,其中会有你新建的页面。注意!!选择post_status为publish的那一项,记录下postID

如上图,postID为2205,post_status为publish

然后打开wp_postmeta,同样是翻到最后一页。
这里说明一下,我无法通过新建postmeta的方式来完成原文中的某些步骤,这里我选择的是对原有的无用postmeta进行修改来达到一样的效果。

如上图,当我们访问了新建的页面后,会出现一个key为view的记录,我们确认postID一致以后,双击view这个key,将其修改为_wp_page_template,然后将meta_value改为上面提到的模板文件名,比如为page-links.php。
注意,以上操作可能要多次刷新页面才可以完成。

修改完以后即可发现我们创建的新页面中已经应用了模板文件。
以上