我正在开发一个插件,我希望能够使用apply_filters()
. 我有一个这样的设置,这是默认值;
print_r( apply_filters( \'some_example_hook\', array(
\'Hello1\' => \'HELL0\',
\'Hello2\', => \'HELL1\',
\'Hello3\', => \'HELL2\',
\'Hello4\', => \'HELL3\',
) ) );
现在我希望能够添加到上面的数组中(以便扩展默认值),但每次创建新函数和add\\u filter时,它都会用这个新数组覆盖数组中的所有内容。这就是我的意思;
add_filter( \'some_example_hook\', \'add_yourself_to_some_examplehook\' );
function add_yourself_to_some_examplehook($args) {
$args = array(
\'Hello5\' => \'HELL4\'
);
return $args;
}
输出将变为;
Array ( [Hello5] => HELL4 )
而不是;
Array (
[Hello1] => HELL0,
[Hello2] => HELL1,
[Hello3] => HELL2,
[Hello4] => HELL3,
[Hello5] => HELL4,
)
因此,我可以轻松地在任何地方和任何时候将数组添加到过滤器中(正如我们在上面从任何地方或任何插件所做的那样,它应该只将数组添加到过滤器中,并使下面的代码有效);
if ( in_array(\'HELL4\', apply_filters( \'some_example_hook\', array(
\'Hello1\' => \'HELL0\',
\'Hello2\', => \'HELL1\',
\'Hello3\', => \'HELL2\',
\'Hello4\', => \'HELL3\',
) ) ) ) {
//Do Something
// THIS WILL BE VALID because we have added it using add_filter above
}
我在这里试过这个方法
Insert new element to array with add_filter 但结果就是这样
Array ( [Hello5] => HELL4 )
... 它不会将数组附加到现有数组。不知道我做错了什么。
提前感谢您的帮助