从外部php文件获取WordPress变量不起作用

时间:2014-03-23 13:40:59

标签: php wordpress

我在外部文件中有两个变量

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文件中有它,它会回显一个值。

无法弄清楚问题是什么

有什么想法吗?

2 个答案:

答案 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'];