上一篇对插件函数之动作(Action)函数做了下介绍,这篇在介绍下过滤器(Filters)。

过滤器是一类函数,WordPress执行传递和处理数据的过程中,在针对这些数据做出某些动作之前的特定运行(例如将数据写入数据库或将其传递到浏览器页面)。过滤器处于数据库与浏览器中间(当WordPress正在产生页面的时候),WordPress中的多数输入与输出都经过至少一个过滤器。WordPress默认状态做了一些过滤,你的插件可以添加它自己的过滤器。

添加你过滤器到WordPress中的方法有这么几步。

1.创建过滤器(过滤数据)的PHP函数。

2.在WordPress中通过钩子(钩子就是主题中的wp_header()和wp_footer())接入过滤器,通过引用add_filter来接入。

3.把你自己的PHP函数放进一个插件文件,并激活它。

首先创建你插件中过滤器的第一步就是创建一个PHP函数来执行过滤,并把它存入你的插件文件中(你的插件文件必须要置于wp-content/plugins目录下)。例如,如果你需要确认你的文章和评论中没有包含脏话,你可以定义一个包含禁用词语列表的全局变量,然后创建下面的PHP函数:

// 当评论文本内容还没有展示在页面之前,执行自定义的过滤函数来过滤内容中的敏感字
add_filter('comment_text','filter_word'); // 声明全局变量,来存储需要过滤的关键字
global $shieldingword;
$shieldingword = array('fuck', 'dirty'); // 需要过滤的关键字 // 过滤关键字的函数, 创建函数名的时候,要注意保持函数名的唯一性。
function filter_word($content) {
foreach($shieldingword as $shielding) {
$content = str_ireplace($shielding, '{Censored Word}', $content);
}
return $content;
}

在你的函数定义完成后,下一步就是挂载或者说在WordPress中注册它。注意:在你插件的全局执行空间引用指定的挂在点。

add_filter ('hook_name', 'your_filter', [priority], [accepted_args]);
// 官方文档: http://codex.wordpress.org/Plugin_API/Filter_Reference
// hook_name: WordPress提供的过滤器钩子,这钩子定义了你的过滤器何时会被执行。
// your_filter: 你希望用来执行过滤功能的函数名称。这可以是一个标准的PHP函数,一个标准的WordPress核心函数,或者是一个你在一个插件文件中定义过的函数。
// priority: (可选参数),整型参数,用来确定与特定过滤器相关联的函数在执行过程中的顺序(默认为10)。具有相同优先权的函数在执行时的顺序依据它们在过滤器中的添加顺序。
// accepted_args: (可选参数),整型参数,定义了你的函数可以接受多少参数(默认为1)。有一定作用价值,因为一些钩子会传递多于一个的

最后将插件激活。就可以使用这个过滤器函数了。如果你想移除某个过滤器函数可以使用remove_filter('filter_hook','filter_function')来完成。

过滤器就为大家简单介绍一下。详细使用说明请参照官方文档:http://codex.wordpress.org/Plugin_API/Filter_Reference

WordPress插件制作教程(七): 插件函数之过滤器(Filter)函数的更多相关文章

  1. WordPress插件制作教程(六): 插件函数之动作(Actions)函数

    这一篇为大家说一下WordPress插件函数吧,要制作插件,了解这些函数是非常有必要的 WordPress插件函数分为“动作”(Actions)和过滤器”(Filters),WordPress 使用这 ...

  2. WordPress插件制作教程概述

    接下来的一段时间里,开始为大家讲解WordPress插件制作系列教程,这篇主要是对WordPress插件的一些介绍和说明,还有一些我们需要注意的地方,以及需要掌握的知识. WordPress插件允许你 ...

  3. WordPress插件制作教程(八): 最后总结

    WordPress插件教程最后一篇,还是为大家简单的做下总结.这次插件制作教程讲的内容和知识点个人觉得不是很多,因为插件制作不单单是这些内容,它涉及的知识很多很多,不是说你会一些函数就可以做出一个好的 ...

  4. WordPress插件制作教程(一): 如何创建一个插件

    上一篇还是按照之前的教程流程,写了一篇WordPress插件制作教程概述,从这一篇开始就为大家具体讲解WordPress插件制作的内容.这一篇主要说一下插件的创建方法. 相信大家都知道插件的安装文件在 ...

  5. 【超酷超实用】CSS3可滑动跳转的分页插件制作教程

    原文:[超酷超实用]CSS3可滑动跳转的分页插件制作教程 今天我要向大家分享一款很特别的CSS3分页插件,这款分页插件不仅可以点击分页按钮来实现分页,而且可以滑动滑杆来实现任意页面的跳转,看看都非常酷 ...

  6. WordPress主题制作教程5:循环

    wordpress循环分两种,一种是自定义循环,一种是默认循环. 自定义循环:根据指定参数进行实例化 调用所有页面,post_type值:page对应页面,post对应文章 <?php $arg ...

  7. WordPress插件制作教程(五): 创建新的数据表

    上一篇讲解了怎样将数据保存到数据库,今天为大家讲解创建新的数据表,也就是说当我们激活插件的时候,会在该数据库下面创建一个新的数据表出来.原理很简单,激活插件的时候运行创建数据库的代码.看下面代码: & ...

  8. qlikview 扩展插件制作教程-EchartsGeoMap

    效果图   显示效果和echarts官方demo一样,运行速度尚可. 第一次写博客,排版很渣以后慢慢改进. 基础知识 以EchartsGeoMap为例,讲一下怎么制作一个基础的QlikView Ext ...

  9. WordPress主题制作教程[壹] - 了解WP&结构&索引

    最近开始筹备WordPress主题开发了.首先我们在此章节中进行了解什么是WP,以及WP的结构.通过这个文章索引到以后所写的WP系列教程. (抱歉,大家不要急,持续更新中....) 1.首先,我们来认 ...

随机推荐

  1. 常用meta标签整理

    < meta > 元素 概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 we ...

  2. UC/OS操作系统 (转)

    1.和其他一些著名的嵌入式操作系统不同,uC/OS-II在单片机系统中的启动过程比较简单,不像有些操作系统那样,需要把内核编译成一个映像文件写入ROM中,上电复位后,再从ROM中把文件加载到RAM中去 ...

  3. JAVA中this用法小结[转]

    Java关键字this只能用于方法方法体内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this.因此,this只能在类中的非静态方法中使用,静 ...

  4. 关于popupwindow的两种实现方式

    http://104zz.iteye.com/blog/1685389 android PopupWindow实现从底部弹出或滑出选择菜单或窗口 本实例弹出窗口主要是继承PopupWindow类来实现 ...

  5. 瞬态抑制二极管TVS的基本知识

    二极管是大家熟悉的元件,但瞬态抑制二极管就可能不太熟悉了.本文将介绍这种特殊二极管的用途. 工作原理等基本知识.各种电子设备中的各种半导体器件,一般都在直流低电压范围各作;如果在电源中串入一个瞬间上百 ...

  6. iptables 必须先拒绝所有,在允许

    <pre name="code" class="html">[root@wx02 ~]# cat /etc/sysconfig/iptables # ...

  7. CH Round #53 -密室

    描述 有N个密室,3种钥匙(红色,绿色,白色)和2种锁(红色,绿色),红色钥匙只能开红色的锁,绿色钥匙只能开绿色的锁,白色钥匙可以开红色的锁和绿 色的锁,一把钥匙使用一次之后会被扔掉.每个密室由一扇门 ...

  8. C# 实现MD5 Hash 计算

    C#提供了一系列的加密库,可以让我们自由使用,这里我来介绍如何使用C#的加密库实现MD5 hash值的计算工作. 参考代码: private static String CalcMd5(String ...

  9. [Matlab] Attempt to execute SCRIPT *** as a function

    Attempt to execute SCRIPT *** as a function 问题: 在运行MATLAB程序的时候,出现如题的报错. 原因: 在系统中,现有的.m文件有的与***函数重名,所 ...

  10. 前端开发利器—FIDDLER 转

    http://www.cnblogs.com/yuzhongwusan/archive/2012/07/20/2601306.html 前端开发利器—FIDDLER 1.Fiddler相对其他调试工具 ...