I was looking over my functions.php and wondering why CODE A uses add_action
while CODE B uses add_filter
?
The main goal of CODE A is to both include and exclude specific categories.
The main goal of CODE B is to exclude specific categories.
Is it correct to use add_action
for CODE A
and add_filter
for CODE B?
CODE A: Display specific category (called "featured") for homepage, instead of "the most recent posts"
function featured_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'category_name', 'featured' );
$query->set( 'category__not_in', array(60, 61) );
$query->set( 'posts_per_page', 5 );
}
}
add_action( 'pre_get_posts', 'featured_category' );
CODE B: Exclude "sponsored posts categories" for search results
function search_filter($query) {
if ( $query->is_search && $query->is_main_query() ) {
$query->set('post_type', 'post');
$query->set( 'category__not_in', array(60, 61) );
$query->set( 'posts_per_page', 20 );
}
return $query;
}
add_filter('pre_get_posts', 'search_filter');
add_action
. But just curious, in terms of website speed, which will load a website faster,add_action
oradd_filter
? ---- Also, notice I used three$query->set
above - does so many$query->set
result in a slow website ? – Ferreira