在WordPress的single.php中,可以通过检查post type对象的_builtin属性来判断当前文章是系统默认还是自定义类型。以下是实现步骤:
步骤说明
- 获取当前文章的post type:使用
get_post_type()函数。 - 获取post type对象:通过
get_post_type_object()函数。 - 检查
_builtin属性:若为true则为系统默认,否则为自定义。
示例代码
<?php
// 获取当前文章的post type
$zzw_post_type = get_post_type();
// 获取post type对象
$zzw_post_type_obj = get_post_type_object( $zzw_post_type );
if ( $zzw_post_type_obj ) {
if ( $zzw_post_type_obj->_builtin ) {
//echo '当前文章类型为系统默认:' . $zzw_post_type;
} else {
//echo '当前文章类型为自定义:' . $zzw_post_type;
}
} else {
//echo '无效的文章类型。';
}
?>
代码解释
get_post_type():获取当前文章的类型名称(如post、page或自定义类型)。get_post_type_object():返回包含该类型详细信息的对象,其中系统默认类型的_builtin属性为true。- 检查对象有效性:确保获取到有效的post type对象,避免错误。
注意事项
- 内置默认类型包括
post、page、attachment等,其_builtin属性由WordPress自动设置。 - 自定义类型通过
register_post_type()注册时,若未指定_builtin参数,默认为false。
这种方法准确可靠,无需维护默认类型列表,直接利用WordPress内部属性判断。

