WordPress 代码之 add_filter

下面是WP添加一个filter的代码:


function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {

global $wp_filter, $merged_filters;
$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);

$wp_filter[$tag][$priority][$idx] = array(‘function’ => $function_to_add, ‘accepted_args’ => $accepted_args);

unset( $merged_filters[ $tag ] );

return true;

}


从这里可以看到,函数中定义了一个全局变量$wp_filter, 每次添加一个filter的时候,先根据要加的tag,functinon名字,优先级生成一个唯一的ID,然后把函数加到数组$wp[$tag][$pri]中,key值是刚刚生成的唯一ID。这样,对每个tag而言,有一系列的优先级,每个优先级又有一 系列的函数。每个函数保存有函数名和接受参数的个数,缺省参数个数是一个。

在default_filter.php中,添加了很多这样的filter。



Wordpress一览无余,源码面前没有秘密,wordpress的函数调用库,展示wordpress页面打开过程中十几万个函数调用,学习WP开发的绝佳资源。点击这里进入

本文地址: http://www.bagualu.net/wordpress/archives/221 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注