WordPress is a popular Content Management System (CMS) that provides various hooks to modify or extend its core functionality. Among those hooks, the add_filter and apply_filters
functions are two of the most commonly used ones. These functions are used to modify the value of a variable or a function result using a callback function. In this article, we will discuss the differences between add_filter
and apply_filters
.
WordPress Filters
Before we delve into the differences between add_filter and apply_filters, let’s first understand what WordPress filters are.
In WordPress, filters are hooks that allow you to modify the value of a variable or a function result before it is displayed on the front-end or saved in the database. Filters are defined by WordPress core or by third-party plugins and themes.
WordPress provides two types of filters: Actions and Filters. Actions are used to execute a block of code at a specific point in WordPress execution, while Filters are used to modify a value before it is returned or saved.
add_filter
The add_filter
function is used to register a filter hook. It accepts three parameters:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
$tag
: The name of the filter hook to register.$function_to_add
: The callback function that will be executed when the filter hook is applied.$priority
: (optional) The priority of the filter hook. The default priority is 10.$accepted_args
: (optional) The number of arguments the callback function accepts. The default value is 1.
Here’s an example of how to use add_filter
:
function wpd_filter_function( $content ) {
return str_replace( 'foo', 'bar', $content );
}
add_filter( 'the_content', 'wpd_filter_function' );
In this example, we registered a filter hook called the_content
using add_filter
. We then defined a callback function called wpd_filter_function
that replaces all instances of the string ‘foo’ with ‘bar’ in the content. Finally, we added our callback function to the the_content
filter hook using add_filter
.
apply_filters
The apply_filters
function is used to execute a filter hook. It accepts two parameters:
apply_filters( $tag, $value );
$tag
: The name of the filter hook to execute.$value
: The value that will be modified by the filter hook.
Here’s an example of how to use apply_filters
:
$title = 'Hello World';
$title = apply_filters( 'wpd_filter_hook', $title );
In this example, we executed a filter hook called wpd_filter_hook
using apply_filters
. We passed a string ‘Hello World’ as the value to be modified by the filter hook. The filter hook may modify the value of $title
.
Differences between add_filter and apply_filters
The main difference between add_filter
and apply_filters
is that add_filter
is used to register a filter hook, while apply_filters
is used to execute a filter hook.
When we register a filter hook using add_filter
, we define the callback function that will modify the value. We can also specify the priority and the number of arguments the callback function accepts.
When we execute a filter hook using apply_filters
, we pass the value that will be modified by the filter hook. We also pass the name of the filter hook that will be executed.
In summary, add_filter
is used to register a filter hook, while apply_filters
is used to execute a filter hook. add_filter
allows us to define the callback function, priority