首页 > 资讯 > WordPress插件开发之Filter Reference(过滤)

WordPress插件开发之Filter Reference(过滤)

WordPress插件开发之Filter Reference(过滤)

sea

本文标签:

在WordPress开发的过程中,我们可以使用action在指定的位置执行指定的动作,而filter则能将WordPress程序产生的数据进行“过滤”,达到“偷梁换柱”的目的。 简单范例 WordPress的登录页面相信大家并不陌生。中间一个WordPressLogo,链接指向wordpress.org,但对于一个商业应用的站点来说,我们可能希望点击它以后链接至自己的首页,如 http://www...

来源:   主角:   时间:2020-05-11 02:34:12

小说介绍

在WordPress开发的过程中,我们可以使用action在指定的位置执行指定的动作,而filter则能将WordPress程序产生的数据进行“过滤”,达到“偷梁换柱”的目的。 简单范例 WordPress的登录页面相信大家并不陌生。中间一个WordPressLogo,链接指向wordpress.org,但对于一个商业应用的站点来说,我们可能希望点击它以后链接至自己的首页,如 http://www...

第1章

WordPress开发的过程中,我们可以使用action在指定的位置执行指定的动作,而filter则能将WordPress程序产生的数据进行“过滤”,达到“偷梁换柱”的目的。

简单范例

WordPress的登录页面相信大家并不陌生。中间一个WordPress Logo,链接指向 wordpress.org,但对于一个商业应用的站点来说,我们可能希望点击它以后链接至自己的首页,如 http://www.2wp.com.cn/。对于一般的程序,我们可能要去改动它的源代码(也就是hook)才能修改为自己所需的样式,而WordPress提供了简单的Filter,只要在Filter中加入自己的替换函数,就能替换WordPress原有的输出结果。
add_filter('login_headerurl','my_login_headerurl');
function my_login_headerurl($url){
 return get_bloginfo('wpurl').'/';
}
通过这几句代码,我们就可以将登录界面的LOGO的链接地址指向为自己的博客首页,是不是很神奇呢?add_filter函数在login_headerurl这个Filter上执行自己的my_login_headerurl函数。my_login_headerurl的参数是原URL,由login_headerurl这个Filter提供(每个Filter都提供自己独特的参数),而我们的函数需要在这个函数结束时返回一个匹配值。在这里,我们将默认的wordpress.org的链接“偷换”为http://www.2wp.com.cn/的链接了。

Filter接口函数解析

add_filter('filter_name','my_filter',$priority=10,$accepted_args=1);
  Filter与Action的参数比较类似,filter_name 为系统提供的Filter,my_filter为自己的过滤函数,$priority为权重,$accepted_args为接受的参数。
remove_filter('filter_name','my_filter',$priority=10,$accepted_args=1);
  删除该Filter。这里不做过多解释,请参见关于Action的详细说明
apply_filters('filter_name',$arg);
  执行某个Filter,$arg为需要传入的参数,可以为数个。

Filter与Action对比

Action是一种动作,这个动作不受太多的WordPress系统限制,你可以在这个Action上加载任何适当的函数。而Filter是根据插件需要,对WordPress系统进行修改,比如前文的范例,我们需要对一个URL进行修改,而修改后的结果也应当为一个URL。
$new_value = apply_filters('filter_this_value',$original_value); do_action('do_something_here');
  Action不需要返回值,也不一定需要传入参数,而Filter则必不可少,所以Filter应该格外需要注意Filter传入的参数个数以及原始参数值,并及时返回参数。

常见的Filter及简单应用

  • the_content:在single页面输出文章全文,可以应用格式化函数对其进行过滤。
  • the_excerpt:输出文章摘要,可以加入字数控制的Filter。
  • the_content_rss:在RSS输出中的全文,可以加入版权信息等。
  • the_title:HTML页面标题,可以对当前页面的title进行重写,达到SEO功效。
更多的常见Filter我们将在遇到具体问题时具体解析,也欢迎大家继续关注爱WP的后续文章。    

为您推荐

小说标签