add_filter()
和 add_action()
都是 WordPress 中的函数,用于注册事件处理程序(也称为钩子)。这些事件处理程序可以在 WordPress 的不同阶段执行,例如在某个页面加载之前或之后、在内容保存到数据库之前或之后等。
下面是 add_filter()
和 add_action()
的一些区别:
- 用途不同:
add_filter()
用于修改现有数据,而add_action()
用于执行动作。 - 参数不同:
add_filter()
有三个参数,分别为过滤器名称、回调函数、优先级和参数数量;而add_action()
有四个参数,分别为动作名称、回调函数、优先级和参数数量。 - 返回值不同:
add_filter()
返回过滤器 ID,而add_action()
返回动作 ID。
示例代码:
// 使用 add_filter() 在 "the_title" 过滤器上注册回调函数
add_filter( 'the_title', 'my_custom_title_function', 10, 2 );
// 使用 add_action() 在 "wp_footer" 动作上注册回调函数
add_action( 'wp_footer', 'my_custom_footer_function' );
add_filter()
函数用于修改现有数据
当 WordPress 处理请求时,它会从数据库中查询数据,然后将数据输出到页面。例如,当访问文章页面时,WordPress 会查询文章数据并将其输出到页面。
在这种情况下,您可能希望修改输出到页面的数据。例如,您可能希望将文章标题转换为大写或将文章内容中的所有单词转换为小写。在这种情况下,您可以使用 add_filter()
函数注册回调函数,并在回调函数中修改现有数据。例如修改文章标题、内容、摘要等。在 WordPress 中,过滤器是用于修改数据的钩子,通常在数据被查询或输出到页面之前调用。
例如,如果您想修改文章标题的大小写,可以在 “the_title” 过滤器上注册回调函数,并使用函数将标题转换为大写:
function my_custom_title_function( $title ) {
return strtoupper( $title );
}
add_filter( 'the_title', 'my_custom_title_function' );
在这种情况下,add_filter()
函数用于修改输出到页面的文章标题。
add_action()
函数用于执行动作
当 WordPress 处理请求时,它会执行一系列动作。例如,当访问文章页面时,WordPress 会加载模板文件、查询文章数据、输出文章内容等。
在这种情况下,您可能希望在特定时间点执行自定义动作。例如,您可能希望在网站底部添加自定义代码或在文章保存到数据库之前执行特定操作。在这种情况下,您可以使用 add_action()
函数注册回调函数,并在回调函数中执行自定义动作。例如在特定时间点添加自定义代码或加载资源。在 WordPress 中,动作是在特定时间点调用的钩子。
例如,如果您想在网站底部添加自定义代码,可以在 “wp_footer” 动作上注册回调函数:
function my_custom_footer_function() {
echo '<p>Thank you for visiting my website!</p>';
}
add_action( 'wp_footer', 'my_custom_footer_function' );
在这种情况下,add_action()
函数用于在网站底部添加自定义代码。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/what-is-the-difference-between-add_action-and-add_filter/