最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

plugin development - Proper way to use apply_filters() with class functions?

programmeradmin1浏览0评论

I want to allow my user to override a function. It's a plugin. I believe that apply_filters() can be used for this. this can be overridden by add_filter().

I am confused about how to use it. Say if i have a class like this

class Example{
  public function hello(){
   $title = the_title_attribute();
   return $title;
  }
}

What change should I make to allow that $title to be modified? where to place the apply filter? Thanks

I want to allow my user to override a function. It's a plugin. I believe that apply_filters() can be used for this. this can be overridden by add_filter().

I am confused about how to use it. Say if i have a class like this

class Example{
  public function hello(){
   $title = the_title_attribute();
   return $title;
  }
}

What change should I make to allow that $title to be modified? where to place the apply filter? Thanks

Share Improve this question edited May 14, 2019 at 17:11 butlerblog 5,1313 gold badges28 silver badges44 bronze badges asked May 14, 2019 at 16:47 user145078user145078
Add a comment  | 

1 Answer 1

Reset to default 5

It depends on you where you want to call apply_filters().

It can be right when you defined the $title:

$title = apply_filters( 'my_hook', the_title_attribute( 'echo=0' ) ); // set echo to false
return $title;

Or in the return call:

$title = the_title_attribute( 'echo=0' ); // set echo to false
return apply_filters( 'my_hook', $title );

Then one can hook to the filter like so:

add_filter( 'my_hook', 'some_function' );

PS: As @birgire pointed, the_title_attribute() will echo output, unless the echo argument is set to false. So be sure to use the function with the proper parameters.

发布评论

评论列表(0)

  1. 暂无评论