Apply_Filters()的确切作用是什么?

时间:2016-10-17 作者:user2537485

我是WordPress开发的新手,正在考虑向小部件添加一些功能。我看到一些人在使用这个:

$title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? \'\' : $instance[\'title\'], $instance, $this->id_base );
有些人会这样:

$title = ( $instance[\'title\'] ) ? $instance[\'title\'] : \'\';
在我的情况下,我想添加一个按钮的链接,但我不确定是否应该对其使用应用过滤器。

$buttonLink = ( $intance[\'buttonlink\'] ) ? $intance[\'buttonlink\'] : \'\';

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

这个$instance[\'title\'] 对应于小部件中输入的标题。

当插件或小部件作为apply\\u过滤器时,开发人员可以轻松地覆盖标题的当前值集。

现在,假设您设置了一个标题(在小部件设置面板中),但您只想在用户登录时更改此值。您只需在函数中添加一个过滤器。php

add_filter(\'widget_title\', \'logged_title\');

function logged_title($title){
    if(is_user_logged_in()){ // don\'t forget to test your widget id 
        $title = \'new widget title\';
    }
    return $title;
} 

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'