我在外部文件中有两个变量
function.php
$bottomID = get_post_meta($post->ID, "bottom", true);
$xstring = "This is a string";
现在如果我从我的 index.php
回应它们echo $bottomID;
echo $xstring;
我只从$xstring
获得值,但不从$bottomID
我知道$bottomID
有效,因为如果我在index.php
文件中有它,它会回显一个值。
无法弄清楚问题是什么
有什么想法吗?
答案 0 :(得分:2)
如果在function.php
中设置变量,它位于全局范围内,变量将仅在index.php
中显示,因为它们被加载到同一范围内,但并非所有变量都可用。模板。大多数模板都是由函数加载的,而在PHP中,函数内部使用的任何变量默认都限制在本地函数范围内,因此必须将变量显式定义为global。
在您的情况下,设置变量且值为false
(使用var_dump( isset( $bottomID ) );
中的index.php
测试),这是因为您使用了global $post
,尚未存在,作为get_post_meta()
函数中的参数,因此该函数的返回值为false
。
答案 1 :(得分:1)
我会在functions.php
中编写一个函数,并在index.php
中调用它。
function get_id_xstring()
{
global $post;
$return = array(
'id' => get_post_meta( $post->ID, 'bottom', true ),
'xstring' => 'This is a string';
);
return $return;
}
在index.php
:
$my_vars = get_id_xstring();
echo $my_vars['id']; // bottomID
echo $my_vars['xstring'];