我一直在努力解决一个非常具体的问题。我注册了一些自定义的post类型,并为每种类型指定了重写slug。
\'rewrite\' => array( \'slug\' => \'my-slug\' ),
但后来,当我试图使用“重写段塞”并查找请求的post\\u类型时,我无法使用get\\u post\\u type()函数:无法从重写段塞识别post\\u类型。
get_post_type( \'my-slug\' )
退货
bool(false)
有没有人有一个优雅的解决方案可以从其重写slug中找到post\\u类型?
SO网友:rudtek
我有两种方法可以做到这一点。。。每个问题:
这个只有在为CPT设置了重写段塞时才有效。如果未设置,可能会导致错误:
$post_type = get_queried_object();
echo $post_type->rewrite[\'slug\'];
此选项不适用于存档页面,因为页面类型将为“页面”:
$post_type = get_post_type();
if ( $post_type )
{
$post_type_data = get_post_type_object( $post_type );
$post_type_slug = $post_type_data->rewrite[\'slug\'];
echo $post_type_slug;
}