如果要减少代码重复,请将代码提取到其自身的函数中,例如:
function get_xyz_query_args( ) : array {
return array(\'post_type\' => \'accomodation\', \'posts_per_page\' => 4, \'meta_query\' => array(\'key\' => \'accomodation_type\', \'value\' => get_query_var(\'accomodation_type\')));
}
....
$args = get_xyz_query_args();
$q = new WP_Query( $args );
然而,通过回收
WP_Query
对象,以及如果操作正确可能造成的损失。引入的复杂性意味着新的bug。
由于WP存储帖子,所以它会获取并发布meta-inWP_Cache
, 第二个WP_Query
只需要获取帖子ID。最重要的是,任何缓存插件或对象缓存都可以完全消除数据库查询。
因此,如果绩效是你的目标,这是不值得做的,有更好的方法。