最近在写Time时光相册插件的时候,要实现有分类则输出A内容,无分类这输出B内容。但在调用相册页面分类id的地方到一些问题。导致判断操作无法进行。
遂开始搜索寻找WordPress调用自定义分类信息方法,最终可用代码如下:
$post_categories = get_the_terms( $post->ID, '你的自定义文章类型名称' );//获取自定义分类信息
if ( ! empty( $post_categories ) && ! is_wp_error( $post_categories ) ) {
echo $post_categories[0]->term_id;//输出自定义分类的 ID
echo $post_categories[0]->name;//输出自定义分类的名称
echo $post_categories[0]->description;//输出自定义分类的描述
echo $post_categories[0]->slug;//输出自定义分类的别名
}
函数详解:
get_the_terms()函数的介绍
get_the_terms( int|WP_Post $post, string $taxonomy )
其中:
$post:(int|WP_Post) (必需) 帖子 ID 或对象
$taxonomy:(string) (必填) 分类名称
返回值:成功时返回 WP_Term 对象的数组
详细介绍: 官方函数介绍
参考链接:
调用判断与输出
下面的代码是Time插件里写的,可供参考。实现功能为 WordPress自定义文章类型下的单页。获取当前页面分类id并进行判断,如果有id这输出 完整分类信息,如无id代表无分类,则输出空。
<!-- 分类 -->
<?php
$post_categories = get_the_terms( $post->ID, 'photos' );
//获取自定义分类信息
if ( ! empty( $post_categories ) && ! is_wp_error( $post_categories ) ) {
}
$photo_time_categories = $post_categories[0]->term_id;
//判断开始
if (empty ( $photo_time_categories )) {
}
else {
echo "<li class='single-like'><span>分类: <b>";
echo the_terms( $post->ID, 'photos' , ' ' );
echo "</b></span></li>";
} ?>