在主题文件中调用WordPress插件变量

时间:2018-01-27 23:38:40

标签: php wordpress

我正在尝试在我的主题文件中调用WordPress插件变量值并在那里回显它,但我没有这样做。这是我试过的。

插件变量是

$thumbs-rating;

我刚刚在主题文件中做了正常的回音,就像这样

<div><?php echo $thumbs-rating ?></div>

我在某处读到我需要将变量设置为全局变量。所以,我试过

global $thumbs-rating;

但没有用。

3 个答案:

答案 0 :(得分:1)

如果你在插件中使用类结构,那么你应该在插件中创建函数来获取该文件的变量

- 在主题

的任何位置获取,设置和使用插件(类)变量的标准方法

例如

  插件文件中的

$my_class = new MY_Class;
$total = $my_class->get_total();
  

在函数文件中

{{1}}

答案 1 :(得分:1)

以下是将插件中定义的variable用于主题文件的一些解决方案。

众所周知,插件的加载时间早于主题。所以,我们可以毫无问题地在插件中定义一些变量,然后在主题中使用它:

插件文件:

global $my_var;
$my_var= 'something';

主题文件:

global $my_var;
echo $my_var;

请注意,当您在函数中使用global时,您应该hook函数somwhere。这意味着可能无法直接在主题文件中获取global变量,因为它可能尚未定义(称为函数)。

直接在主题文件中访问插件函数中定义的global

插件文件:

function ww_new(){
    global $ww_new;

    $ww_new = 'something';
}
add_action('wp_roles_init', 'ww_new');

主题文件:

global $ww_new;
echo $ww_new;

我们使用wp_roles_init挂钩,在主题设置之前触发。这意味着,我们可以毫无问题地访问全球。但是如果我们使用其他钩子,例如init,那么我们的global将为空。

只需使用函数和filter访问某个变量:

插件文件:

function ww_new()
{
    $ww_var['a'] = 99;
    $ww_var['b'] = 999;

    $ww_var = apply_filters('ww_filter', $ww_var);
}
add_action('after_setup_theme', 'ww_new');

主题文件:

function ww_func($var){
    var_dump($var);
    //your code

    return $var;
}
add_filter('ww_filter', 'ww_func', 10, 1);

我们使用after_setup_theme挂钩来访问我们的变量,并且可以在主题文件中使用过滤器。只有几个默认hooks,在主题激活和使用之前触发,我们无法访问变量。

答案 2 :(得分:0)

好像你忘了“&gt;” ! $thumbs-rating;错误,请更改您的代码:

global $thumbs;
echo $thumbs->rating; // or if rating is a function: echo $thumbs->rating();