时时商务社区

标题: 详解WordPress中创建和添加过滤器的相关PHP函数 [打印本页]

作者: wx_pylelnL4    时间: 2018-2-14 08:15

            apply_filters()(创建过滤器)
apply_filters() 函数用来创建一个过滤器,大多数被用在函数中,是 WordPress 插件机制中非常重要的一个函数,能让其它的主题和插件对一个值进行修改过滤。
用法
apply_filters( $tag, $value, $var... );
参数
$tag
(字符串)(必须)过滤器的名字。
默认值:None
$value
(混合)(必须)要过滤的值,如果没人过滤则直接返回这个值。
$var
(混合) (可选)传给过滤函数额外的变量参数,辅助过滤函数对返回值进行操作,可以添加无限个。
返回值
(混合)过滤后的值,如果没人过滤则直接返回 $value 的值。
例子
没人过滤:
echo apply_filters( 'test', '可以被修改的值' );
打印结果:
可以被修改的值
有人过滤:
function test_func(){
  return '修改值';
}
add_filter( 'test', 'test_func' );
echo apply_filters( 'test', '可以被修改的值' );
打印结果:
修改值
接收参数:
function test_func(){
  return '修改值';
}
add_filter( 'test', 'test_func' );
function test_func2( $text ){
  return $text . '2';
}
add_filter( 'test', 'test_func2' );
echo apply_filters( 'test', '可以被修改的值' );
多个参数:
function test_func( $text, $var, $var2 ){
  return '修改值' . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '可以被修改的值', '辅助值1', '辅助值2' );
其它
此函数位于:wp-includes/plugin.php
add_filter()(添加过滤器)
add_filter() 可以挂载一个函数到指定的过滤器上。
用法
add_filter( $tag, $function_to_add, $priority, $accepted_args );
参数
$tag
(字符串)(必须)所挂载的过滤器名字(和目标 apply_filters() 函数的 $tag 属性一样)。
默认值:None
$function_to_add
(回调)(必须)要挂载的回调函数,参考 PHP 回调函数类型文档。
默认值:None
$priority
(整数)(可选)执行顺序,越小函数越先被执行。
默认值:10
$accepted_args
(整数)(可选)回调函数接收的参数数量,设置多个可以接收更多 apply_filters() 函数传进来的参数。
默认值:1
返回值
(布尔)总是 True
例子
function test_func( $text, $var1, $var2 ){
  return $text . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '参数2', '参数3', '参数4' );
打印:
test参数2参数3
其它
该函数位于:wp-includes/plugin.php
            
            
您可能感兴趣的文章:
  • WordPress中编写自定义存储字段的相关PHP函数解析
  • 讲解WordPress中用于获取评论模板和搜索表单的PHP函数
  • WordPress中用于创建以及获取侧边栏的PHP函数讲解
  • WordPress中用于获取搜索表单的PHP函数使用解析
  • WordPress开发中自定义菜单的相关PHP函数使用简介
  • WordPress中调试缩略图的相关PHP函数使用解析
  • WordPress主题制作中自定义头部的相关PHP函数解析
  • 编写PHP脚本清除WordPress头部冗余代码的方法讲解
  • 解析WordPress中控制用户登陆和判断用户登陆的PHP函数
  • 详解WordPress中用于更新和获取用户选项数据的PHP函数
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2