我目前有相同的args来查找某个帖子:
$page = 0;
$args = array(
"posts_per_page" => 10,
"offset" => $page * 10,
"post_type" => "graven",
"post_status" => "publish"
);
$posts = get_posts($args);
var_dump($posts);
这将正确地返回按日期排序的10个此类型的第一个帖子。现在,有另一种自定义帖子类型(使用Pods框架Pods.io制作),它有一个不同的名称,除此之外,应该完全相同。我在查询中应该使用的唯一区别是将post_type
更改为begraafplaats
,并将post_status
设置为draft
,但是,这会导致返回一个空数组。我知道其中一个帖子的ID,所以我使用get_post(<the id>)
查询了该帖子,并得到了我预期的结果。
这给了我以下输出:
WP_Post Object
(
[ID] => 3935
[post_author] => 1
[post_date] => 2015-08-21 04:25:16
[post_date_gmt] => 0000-00-00 00:00:00
[post_content] =>
[post_title] => R.K. Begraafplaats St. Theresiakerk (Eindhoven)
[post_excerpt] =>
[post_status] => draft
[comment_status] => closed
[ping_status] => closed
[post_password] =>
[post_name] =>
[to_ping] =>
[pinged] =>
[post_modified] => 2015-08-21 04:25:16
[post_modified_gmt] => 2015-08-21 04:25:16
[post_content_filtered] =>
[post_parent] => 0
[guid] => http://example.com/?post_type=begraafplaats&p=3935
[menu_order] => 0
[post_type] => begraafplaats
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
正如您所看到的,返回的post_type与我在$args
数组中使用的相同,并且post类型是draft,正如预期的那样。然而,这似乎并没有给我带来任何结果。
有没有一个合理的解释来解释为什么这不起作用?
我已经使用$wpdb
使用裸MySQL查询解决了这个问题。这不是一个优雅的解决方案,然而,我现在已经掌握了我需要的所有信息。