通过Add_Filter更新变量值

时间:2020-10-23 作者:wplearner

我的插件中有这个应用过滤器。

$pre_html = apply_filters( \'events_views_html\', null, $view_slug, $query, $context );
我想换衣服$view_slug 使用从子主题动态获取值add_filter 因为我不想修改插件文件。但该代码不起作用。它显示的值为$view_slug 而不是显示完整的页面内容。

function add_extra_val( $view_slug, $query, $context  ){
    if (is_singular(\'tribe_events\')) {
        $view_slug = \'single-event\';
    }
    return $view_slug;
}

add_filter(\'events_views_html\', \'add_extra_val\', 10, 3);
这是一个基本问题,但我对WordPress过滤器和挂钩的知识有限。请提供一些相关指南。

2 个回复
SO网友:vancoder

过滤器仅允许您直接修改first 传递给他们的值。对你来说null. 如果你换了位置view_slug 在一个地方,可以使用events_view_html 标签

add_filter( \'events_view_html\', \'my_callback\', 10, 3); // passing 3 args to the callback, assuming you need them for something.

function my_callback( $view_slug, $query, $context ) {
// Do whatever you need to do to $view_slug
// $query and $context can be read but not changed
return $view_slug;
}

SO网友:Yash Tiwari
Below is an example to modified the value using the add_filter hook:

// Accepting two arguments (three possible).
function example_callback( $view_slug, $query ) {
    ...
    return $maybe_modified_value;
}
add_filter( \'events_views_html\', \'example_callback\', 10, 2 ); // Where $priority is 10, $accepted_args is 2.

相关推荐

如何在Reaction JS/Gutenberg中使用wp.hooks.addAction()?

我能够成功使用wp.hooks.applyFilters() 和wp.hooks.addFilter(), 但我无法使用wp.hooks.addAction(). 但是console.log() 在某个操作的回调中运行良好。这是我的代码:import { createHooks } from \'@wordpress/hooks\'; let globalHooks = createHooks(); const Header = () => { r