WordPress array_column не работает на wp_get_post_terms

Я пытаюсь извлечь массив term_ids из wp_get_post_terms, используя array_column, но он ничего не возвращает.

Вот код:

$atype = wp_get_post_terms($property_ID, 'property_category', true);
$types = array_column($atype, 'term_id'); // Not working so using array map
$types2 = array_map(function($te) {
  return $te->term_id;
}, $atype);

echo '$atype: ';
echo '<pre>'; print_r($atype); echo '</pre>';
echo '$types: ';
echo '<pre>'; print_r($types); echo '</pre>';
echo '$types2: ';
echo '<pre>'; print_r($types2); echo '</pre>';

Вот результат:

$atype: Array
(
    [0] => WP_Term Object
    (
        [term_id] => 51
        [name] => Office
        [slug] => office
        [term_group] => 0
        [term_taxonomy_id] => 51
        [taxonomy] => property_category
        [description] => 
        [parent] => 0
        [count] => 1
        [filter] => raw
    )

)
$types: Array
(
)
$types2: Array
(
    [0] => 51
)

Почему не работает array_column? На основании документов, это должно быть. Я использую> php 5.5. http://php.net/manual/en/function.array-column.php

1 ответ

Это потому что wp_get_post_terms return и массив объектов s, а не двумерный массив. array_column работает только на 2-мерных массивах до php 7.0.0.

Другие вопросы по тегам