在WordPress中,如何使用两个参数term slug和post ID检查是否为TERM分配了POST?

时间:2016-12-27 10:47:12

标签: php

我需要检查一个帖子是否已分配了一个术语,但我没有关于该术语分类的信息,因为它可能是我网站中的任何分类。

请建议。

1 个答案:

答案 0 :(得分:0)

您可以使用自定义函数返回所有分类的术语:

/**
 * Get terms for all taxonomies
 *
 * @see get_object_taxonomies()
 */
function yourprefix_all_axonomies_terms($post_id) {
    $post       = get_post( $post_id );
    $post_type  = $post->post_type;
    $taxonomies = get_object_taxonomies( $post_type );
    $out        = [ ];

    foreach ( $taxonomies as $taxonomy_slug ){

        // Get the terms related to post.
        $terms = get_the_terms( $post->ID, $taxonomy_slug );

        if ( ! empty( $terms ) ) {
            foreach ( $terms as $term ) {
                $out[] = $term->slug;
            }
        }
    }
    return $out
}

然后使用它:

if (in_array($term_looked_for, yourprefix_all_axonomies_terms( $post->ID ) ) {
// do your thing
}