问题是,您不是在修改小部件的现有参数,而是在替换它们:
add_filter(\'widget_posts_args\', function() {
$params[\'post_type\'] = array(\'post\', \'recipe\');
return $params;
});
该过滤器的结果将是:
$params = [
\'post_type\' => [ \'post\', \'recipe\' ]
];
因此,任何其他参数,包括默认的帖子数量,都将被删除。
这是因为您不接受过滤器中的原始值。回调函数需要接受此参数,以便修改并返回它:
add_filter(\'widget_posts_args\', function( $params ) {
$params[\'post_type\'] = array(\'post\', \'recipe\');
return $params;
});
这就是过滤器的工作原理。您使用一个接受原始值并返回新值的函数。