我试图根据调用的函数中的变量是否apply_filters()
等于特定值。该变量不会传递给apply_filters()
参数。这或许可以解释我的意思:
// function in wordpress core
function get_var_b() {
// generating $var_a
$var_a = "a";
// some code ...
$var_b = apply_filters(\'get_var_b\', $var_b);
return $bar_b;
}
// in functions.php
add_filter(\'get_var_b\', \'filter_var_b\');
function filter_var_b($var_b) {
if ($var_a == "c") {
$var_b = "d";
}
return $var_b;
}
我试着用
global $var_a;
在我的职能范围内,但没有成功。我能进入的唯一途径
$var_a
通过编辑核心文件并传递
$var_a
到
apply_filters()
功能如下:
apply_filters(\'get_var_b\', $var_b, $var_a);
有没有一种方法可以在不编辑核心文件或尝试从头重新生成$var\\u a的情况下访问此变量?谢谢
EDIT: 我尝试连接的过滤器是dynamic_sidebar_params
从中调用dynamic_sidebar()
中的函数wp-includes/widgets.php
文件我正在尝试改变$params[0][\'before_widget\']
从…起<aside>
到<nav>
如果$id
等于categories-2
.