你好
我想根据他的ID显示帖子。此帖子可以是默认的“帖子”、“页面”或其他注册的自定义帖子类型。在查询中,我应该指定要使用的所有CPT名称,例如。
\'post_type\' => array(\'post\', \'page\', \'my_cpt\')
我的问题是,如何为所有注册的帖子类型自动设置“post\\u type”,而无需手动指定它们?
我正在努力做到这一点:
$post_types = ALL-POST-TYPES-NAMES;
$the_query = new WP_Query(
array(
\'post_type\' => $post_types,
\'p\' => ID,
)
);
谢谢!
最合适的回答,由SO网友:Jacob Peattie 整理而成
您可以使用get_post_types()
功能:
$post_types = get_post_types();
在您的情况下,您需要设置第二个
$output
参数到
names
(因为这是你需要传递给
post_type
参数),您可能需要设置
$args
在第一个参数中,只返回公共帖子类型,否则您可能会得到一些奇怪的东西,如菜单项和修订:
$post_types = get_post_types( [ \'public\' => true ], \'names\' );
然而,看起来您只是在根据ID查找特定的帖子。如果是这样,那么您根本不需要帖子类型或查询。只需将ID传递给
get_post()
:
$post = get_post( $id );