【发布时间】:2018-03-14 12:47:33
【问题描述】:
我有一个运行 4.8.2 版的 WP 网站。 我在主题的根文件夹中创建了一个自定义 php 页面,其中包含带有以下代码的 Wordpress 函数:
<?php
echo 'ralph';
clearstatcache();
echo file_exists('../../../wp-load.php');
require_once('../../../wp-load.php');
echo 'joe';
?>
最终结果应该是在页面上显示字符串“ralph1joe”(1 代表 wp-load.php 实际存在的事实)。
问题是:当我启动自定义页面时,仅显示字符串“ralph1”。 require_once 行之后的任何指令都将被忽略。我在页面和日志文件中都看不到任何错误。页面的进程被简单地打断了。
我可以做些什么来让 require_once 行正常工作吗?
【问题讨论】:
-
您是否检查过 HTML 源代码以查看“joe”是否嵌套在某处?错误报告也打开了吗?
-
我确实检查了 HTML 源代码:它只显示“ralph1”。错误报告处于活动状态。
-
更准确地说,我实际上有一个延迟错误可视化(该网站位于共享托管平台上)。此错误:未捕获错误:调用未定义函数 is_user_logged_in() 实际上可能是由我的自定义页面引起的,但我不能确定。
-
试试
echo file_exists('../../../wp-load.php')? 'yes' : 'no';,这样你就可以真正看到它是否在你认为的位置。假设您的主题位于目录下,您可以尝试$uriParts = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] ); require_once( $uriParts[0] . 'wp-load.php' );之类的方法来获取正确的位置。 -
@Newcomsas 错误可能来自您所包含的文件(尝试追踪它所说的文件)。然后在到达
echo 'joe';之前使您的脚本崩溃。
标签: php wordpress wordpress-theming require-once