Sin*_*ard 0 php wordpress for-loop function php-include
我正在尝试在WordPress上运行一个返回用户信息的循环.当我有PHP代码在与查询相同的文件中回显结果时,它按预期工作.但是,如果我include
用来访问其他地方的转换,即使所包含文件中的代码相同,它也不会返回任何信息.为什么会这样?
我的循环如下:
<?php
// The Query
$user_query = new WP_User_Query( array( 'include' => array( 1, 2, 3 ) ) );
// User Loop
if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) {
?>
<?php transform('user_directory'); echo $user->display_name; ?>
<?php
}
} else {
echo 'No users found.';
}
?>
Run Code Online (Sandbox Code Playgroud)
Transform
是一个简单的函数,包括按名称的另一个页面:
function transform($transformation) {
include 'transformations/'.$transformation.'.php';
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,echo
命令有效,而包含的文件(via Transform
)则不然.肯定会找到包含的文件,并且正在完美呈现其他html和PHP代码,它似乎无法找到任何内容$user
.
包含的PHP文件中包含的代码是:
<?php echo $user->display_name; //Won't return this text
echo "It returns this text fine"; ?>
Run Code Online (Sandbox Code Playgroud)
我是否无法访问在一个页面上创建的数组,其中包含来自另一个页面的代码?
问题是,你是从一个函数中包含它.PHP中的函数确实拥有自己的范围.包含的文件将继承函数的空范围.你可以传递$user
给函数:
function transform($transformation, $user) {
include 'transformations/'.$transformation.'.php';
}
...
<?php transform('user_directory', $user); echo $user->display_name; ?>
Run Code Online (Sandbox Code Playgroud)
这将设置$user
变量,并使其可以通过包含的文件访问.
希望这可以帮助 :-)
归档时间: |
|
查看次数: |
57 次 |
最近记录: |