将信息从unctions.php传递到plugin

时间:2015-08-19 作者:hommealone

传递信息的最佳方式是什么functions.php 到插件?

我需要让用户能够从他们的functions.php 文件到我的插件。(它可以是任何数据,只是我可以检查的数据;它可以是变量的值,甚至可以是设置了变量或定义了函数的事实。)

我尝试了以下建议:

Pass A Value From Outside To A Plugin Variable

我一字不差地插入了代码:

在插件上:

 $value = 0;
 $value = apply_filter(\'get_value_from_function\', $value);
然后打开functions.php

add_filter(\'get_value_from_function\', \'my_special_value_treatment\', 10, 1);
function my_special_value_treatment ($value){
    return 1;
}
但这会导致一个错误:

致命错误:调用/pathtomyplugin/my plugin name/my plugin name中未定义的函数apply\\u filter()。php第93行

我不明白为什么会失败。最好的方法是什么?

使用此添加编辑:

将其更改为后apply_filters(), 这种情况仍在发生。。。在我的插件中:

$value = 0;
$value = apply_filters(\'get_value_from_function\', $value);
if ($value===0) {
    $test_info = \'not_passed\';
} else {
    $test_info = \'passed\';
};
// $test_info is not_passed

2 个回复
最合适的回答,由SO网友:webtoure 整理而成

插件加载在主题之前,这意味着apply_filters 不会向其注册任何实际回调。相反,您需要致电apply_filters 加载主题后的某个时间。类似这样:

/* Your plugin\'s file: */

add_action( \'init\', \'my_lovely_funky_filters\' );

function my_lovely_funky_filters() {
    /* Fire our callbacks */
    $value = 0;
    $value = apply_filters( \'get_value_from_function\', $value );

    /* Check your $value now */
    /* echo "<pre>{$value}</pre>"; */
}

/* Your functions.php file */

add_filter( \'get_value_from_function\', \'my_special_value_treatment\', 10, 1 );
function my_special_value_treatment( $value ) {
    /* A little more interesting */
    return (int)$value + 1;
}

SO网友:vancoder

这是正确的方法-除了函数apply_filters, 不应用\\u筛选器。这就是你的错误。

结束

相关推荐

add_action in the loop hooks

我有以下结构:add_action(\'my_content\', \'standard_loop\'); function standard_loop() { if (have_posts()) : while (have_posts()) : the_post(); do_action(\'loop_entry_before\'); do_action(\'loop_entry\');