📌  相关文章
📜  获取自定义帖子类型分类值 - PHP (1)

📅  最后修改于: 2023-12-03 15:27:51.545000             🧑  作者: Mango

获取自定义帖子类型分类值 - PHP

在WordPress中,我们可以创建自定义帖子类型和分类(taxonomy)。在使用自定义帖子类型时,我们可能会需要获取分类值。下面是一个示例函数,可以帮助我们获取指定文章的分类值。

/**
 * 获取指定文章的自定义帖子类型分类值
 *
 * @param int $post_id 文章ID
 * @param string $taxonomy 分类名称(taxonomy名称)
 *
 * @return array 分类值数组,如果没有分类则返回空数组
 */
function get_custom_post_type_taxonomy_values($post_id, $taxonomy) {
    $terms = wp_get_post_terms($post_id, $taxonomy);

    if (is_wp_error($terms) || empty($terms)) {
        return array();
    }

    $values = array();

    foreach ($terms as $term) {
        $values[] = $term->name;
    }

    return $values;
}
示例用法

假设我们创建了一个名为“books”的自定义帖子类型,并创建了名为“category”的分类。我们可以使用以下代码获得其中一篇文章的分类值:

$post_id = 123; // 文章ID
$taxonomy = 'category'; // 分类名称

$values = get_custom_post_type_taxonomy_values($post_id, $taxonomy);

if (!empty($values)) {
    echo '分类:' . implode(', ', $values);
} else {
    echo '此文章没有分类。';
}
解释

该函数的实现非常简单。它将文章ID和分类名称作为参数传入,并使用wp_get_post_terms函数获取文章的分类对象。如果没有分类返回空数组。如果有,则将每个分类的名称添加到名称数组中并返回它。

使用此函数显示分类值的示例中,我们首先使用函数获取值,并检查值是否为空。如果存在分类值,则将它们以逗号分隔的形式显示出来。如果没有分类值,则显示一条消息,表示该文章没有分类。