Если заявление для отображения Post meta - PullRequest
0 голосов
/ 02 мая 2019

У меня есть таксономия с именем talent_cat, которая является категорией указанного поста, имеет 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 meta в зависимости отtalent_cat указанного поста?Поэтому, если сообщение принадлежит talent_cat = modelos, оно возвращает 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;
      }

Спасибо.

1 Ответ

2 голосов
/ 02 мая 2019

Функция get_the_term_list возвращает 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;
    }
}
...