首先,您的回拨pre_get_posts
是错误的。那就是not the way that set
works. 如果你有debugging enabled, 你会看到Notices
. 它应该是:
function more_posts_per_search_page( $query ) {
if ( !is_admin() && $query->is_main_query() ) {
if ( $query->is_search ) {
$query->set(\'posts_per_page\',500);
$query->set(\'post_type\',array( \'author\', \'book\'));
}
}
}
add_action( \'pre_get_posts\',\'more_posts_per_search_page\' );
其次,据我所知,没有任何内置功能可以将这些数字返回给您,但使用
WordPress Core function 和a
PHP one.
$types = wp_list_pluck($wp_query->posts,\'post_type\');
// var_dump($types); // debugging
$types_count = array_count_values($types);
var_dump($types_count); // your data
该代码应该放在主题的
search.php
.