我想使用ID显示一篇文章WP_Query(). 为此,我使用以下参数:
$args = array(
\'p\' => 61202);
这应该行得通,但似乎行不通
if 这篇文章是定制的
post_status
.
为了解决这个问题,我尝试了以下方法:
$args = array(
\'p\' => 61202, // id of post
\'post_type\' => \'any\', // apply to all post types
\'post_status\' => \'my_custom_status\' // the custom post status
);
但这仍然不起作用。
Why?!是否存在已知错误?我正在wp管理区域运行此代码。如果post处于任何WP core post状态,则其工作正常。
最合适的回答,由SO网友:fuxia 整理而成
WP_Query
有a bug (#29167) 当你尝试获取帖子时(几乎?)任何其他状态publish
. 此错误似乎已在行李箱中修复。我还没有测试它,所以我无法判断它是否涵盖了您的用例。尝试一下,如果没有,就在那里给出反馈。
有两种解决方法:
使用get_post( $post_id )
. 它运行自己的查询,不受此bug的影响。
如果您不知道帖子ID,请使用自定义DB查询:
$sql = "SELECT * FROM $wpdb->posts WHERE post_status = %s AND post_type = %s";
$prepared = $wpdb->prepare( $sql, $status, $post_type );
$posts = $wpdb->get_results( $sql );