我有一个页面模板,其中包含另一个文件,通过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转储会在原始文件之前运行?我觉得这与无法在包含的文件中读取变量这一事实有关。
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
两个文件位于同一目录中。