如果您的情况需要获取所有帖子,请尝试添加\'cache_results\' => false
到参数数组。所以,这个。
$your_query = get_posts(
array(
\'posts_per_page\' => -1,
\'post_type\' => \'post\',
\'cache_results\' => false,
)
);
这说明
WP_Query
根据中的这一行,不缓存结果
wp-includes/class-wp-query.php
:
if ( $q[\'cache_results\'] )
update_post_caches($this->posts, $post_type, $q[\'update_post_term_cache\'], $q[\'update_post_meta_cache\']);
虽然如果您在同一个请求中多次查询同一个帖子,这种缓存对速度有很大帮助,但它占用了大量内存,很可能是内存错误的根源。