require happens out of order

时间:2016-04-07 作者:Esaevian

我有一个页面模板,其中包含另一个文件,通过require_once. 我希望此包含的文件能够访问$post 对象,但它找不到它。

所以我做了这样的事情来看看发生了什么

page.php

<?php
    $post_title = $post->post_title;
    echo "Post:<br/>"; var_dump($post_title);

    require_once(\'inc/external.php\');
?>

inc/external.php

<?php
    global $post_title;
    echo "External post:<br/>"; var_dump($post_title, true); echo "<br/><br/>";
?>
不仅如此external.php 未看到$post\\u标题,但它按顺序打印:

Output:

External post: 
NULL

Post:
Title of the Post
为什么包含文件中的echo/var\\u转储会在原始文件之前运行?我觉得这与无法在包含的文件中读取变量这一事实有关。

1 个回复
SO网友:montrealist

必须与您的设置有关。以下作品适合我(在儿童主题中-应该适合任何主题):

仅有一个的php:

global $post;
$bla = $post->post_title;
error_log(\'post title is: \' . $bla);
include(\'included.php\');
包括在内。php:

error_log(\'i am included file: \' . $bla);
调试中的输出。日志:

post title is:  Hello test
i am included file: Hello test
两个文件位于同一目录中。

相关推荐

为什么我不能执行wp-includes文件夹下的php文件?

我正在调整WordPress以更好地理解它,玩它。出于个人目的。但从加载自定义文件/wp-includes 文件夹无法工作。我试图添加信息。php文件位于/wp-includes 包含phpinfo() 当我尝试通过以下方式在浏览器中访问它时example.com/wp-includes/info.php, 服务器返回错误503。文件夹权限设置为775,文件权限设置为644。Important note: 如果我重命名wp-includes 文件夹,例如wp-include, 那就行了!我联系了主机支持人