If 语句显示 Post 元数据

If statement to display Post meta

我有一个名为 talent_cat 的分类法,它是所说 post 的类别,有 4 个值:modelos, atores, musica, djs 并且在每个个体 talent_cat 中有这些 post meta keys:
talent_id_1495127471815 对于 modelos
talent_id_1495127471816 对于 atores
talent_id_1495127471817 对于 musica
talent_id_1495127471818 对于 djs

我如何构建一个条件来根据所述 post 的 talent_cat 显示正确的 post meta?因此,如果 post 属于 talent_cat = modelos,则它 returns 属于 talent_id_1495127471815 而不是其他值。

我试过了,但没有成功:

$talent_data = get_the_term_list( $post->ID, 'talent_cat');
switch( $talent_data ) {
                case 'modelos':
                    echo get_post_meta(get_the_ID(), 'talent_id_1495127471815', true);
                    break;
      }

谢谢。

函数get_the_term_list returns HTML 但是你需要得到一个数组或对象来检查你的语句。您需要改用 get_the_terms 函数。您的代码应如下所示:

global $post;
$talent_data = get_the_terms( $post->ID, 'talent_cat');

// check for errors or empty data
if ( is_wp_error( $talent_data ) || empty( $talent_data ) ) {
    return;
}

foreach ( $talent_data as $term ) {
    // you can check for name or slug or id
    switch( $term->slug ) {
        case 'modelos':
           echo get_post_meta($post->ID, 'talent_id_1495127471815', true);
           break;
    }
}