我很好奇,所以我microtime
它有三种帖子类型,共有大约120个帖子。比较三个wp_count_posts()
呼叫一个get_posts()
呼叫如果您使用fields
后者的参数,值为ids
, 然后它们的速度大致相同,否则会慢30倍。这个get_posts()
相比之下,该方法可能在95%的范围内,所以它可能会快一点,但我没有运行足够的迭代来得到最终结果。所以我想说你可以用任何一种方式。
// use either
$p1c = wp_count_posts( \'post-type-1\' )->publish;
$p2c = wp_count_posts( \'post-type-2\' )->publish;
$p3c = wp_count_posts( \'post-type-3\' )->publish;
$res = $p1c + $p2c + $p3c;
//alternatively
$pts = [ \'product\', \'post\', \'page\' ];
$res = 0;
foreach ( $pts as $pt) {
$res = $res + wp_count_posts( $pt )->publish;
}
// or use this
$res = count( get_posts( [
\'post_type\' => [ \'product\', \'post\', \'page\' ],
\'posts_per_page\' => -1,
\'fields\' => \'ids\'
] ) );