Как перебрать эти данные? - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь получить идентификатор термина из этих данных, возвращаемых get_terms_by()

WP_Term Object ( [term_id] => 29 [name] => gps [slug] => gps [term_group] => 0 [term_taxonomy_id] => 29 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 1 [filter] => raw )
 WP_Term Object ( [term_id] => 16 [name] => joystick [slug] => joystick [term_group] => 0 [term_taxonomy_id] => 16 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 3 [filter] => raw )
 WP_Term Object ( [term_id] => 14 [name] => lcd [slug] => lcd [term_group] => 0 [term_taxonomy_id] => 14 [taxonomy] => post_tag [description] => [parent] => 0 [count] => 3 [filter] => raw )

но возвращает данные в виде строки

$data = get_term_by('name', $tag , 'post_tag');
print_r($data);

foreach ($data as $tag_id) {
    echo $tag_id['term_id'];
}

Я хочу это [term_id] => 29 только term_id

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Прежде всего, вы не можете получить только [term_id] => 291, потому что у вас есть 3 условия в результате, вы можете иметь массив $term_ids = array(29, 16, 14);

$data = get_term_by('name', $tag , 'post_tag');
$term_ids = array();

foreach ($data as $term) {
    $term_ids[] = $term->term_id;
}

print_r($term_ids);
0 голосов
/ 20 мая 2019

Функция get_term_by имеет параметр с именем $output.Если вы укажете его, вы должны получить массив обратно:

$term = get_term_by( 'name', $tag, 'post_tag' );

if ( $term ) {
    echo $term->term_id;
}
else {
    echo 'Term not found';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...