我有这个奇怪的问题。我想要抓取所有自定义类型的帖子,这是我的代码段。
$query = new WP_Query(array(
'post_type' => 'custom',
'post_status' => 'publish'
));
while ($query->have_posts()) {
$query->the_post();
$post_id = get_the_ID();
echo $post_id;
echo "<br>";
}
wp_reset_query();
这只能获得其中的6个,而我在数据库中有超过50条符合该条件的记录。谁能告诉我哪里出错了?
非常感谢!
答案 0 :(得分:37)
'posts_per_page' => -1,
将此添加到WP_QUERY参数数组中,它应该返回此自定义帖子类型的所有帖子。
答案 1 :(得分:21)
这会使用get_posts
获取自定义类型的所有帖子:
$posts = get_posts([
'post_type' => 'custom',
'post_status' => 'publish',
'numberposts' => -1
// 'order' => 'ASC'
]);
答案 2 :(得分:5)
要返回的帖子数量在设置&gt;下设置。阅读
您可以传递要查询的帖子数量。
'posts_per_page' => 'number of posts'
答案 3 :(得分:5)
您永远不要使用:
"document-123":{
"match":true, "value":9.41881, "description":"sum of:",
"details":[
{"match":true, "value":9.41881, ... },
{"match":true, "value":0.0,
"description":"Score based on 1 child docs ..., best match:",
"details":[{"match":true, "value":11.7847,
"description":"sum of:", "details":[ ... ]}]}]},
如果您谈论的是SQL查询速度,它会很慢且无效。因此,最好使用一些大整数。
这是性能危险。如果我们有100,000个帖子怎么办?这可能会使站点崩溃。例如,如果您正在编写小部件,并且只想获取所有自定义帖子类型,请为您的情况确定一个合理的上限。
更多详细信息在这里: https://10up.github.io/Engineering-Best-Practices/php/#performance
答案 4 :(得分:-5)
建议使用整数而不是'-1'例如:
'posts_per_page' => 999999,