的第三个参数add_filter
是执行过滤器的优先级,第四个是第二个参数中的函数使用的参数数。
这个wpcodex_filter_main_search_post_limits
函数有一个if,它使用两个wordpress函数来确定您在页面中执行代码的位置,在这种情况下,它检查是否在前端,是否是主查询,以及是否在搜索页面中。
参数$limit
和$query
由CMS传递,这些是默认值,因此如果不满足if中的条件,函数将返回默认值$limit
编辑:
function posts_limit_fn($limit, $query){
return \'LIMIT 0, 3\';
}
add_filter(\'posts_limit\', \'posts_limit_fn\',10, 2);
编辑2:
如果不打算使用参数,可以使用如下函数:
global $custom_limit;
$custom_limit = \'0, 2\';
function posts_limit_fn(){
global $custom_limit
return \'LIMIT \' . $custom_limit;
}
add_filter(\'posts_limit\', \'posts_limit_fn\',10, 0);
这是一种方法。总是尝试在所有全局变量前面加前缀,如果可以避免,那就更好了。
编辑:不带全局变量
function posts_limit_fn($limit, $query, $custom_limit = \'\'){
if($custom_limit !== \'\'){
return $custom_limit;
}
return $limit;
}
add_filter(\'posts_limit\', \'posts_limit_fn\',10, 3);
$custom_limit = \'LIMIT 0,4\';
apply_filters(\'posts_limit\', \'\', \'\', $custom_limit)
edit for WP_Query
:
如果您正在使用
WP_Query
, 对于分页,可以传递
paged
每个函数调用的参数。