Wordpress array_column无法处理wp_get_post_terms

时间:2017-02-22 19:15:55

标签: php wordpress array-map array-column

我正在尝试使用array_column从wp_get_post_terms中提取term_id数组,但它不会返回任何内容。

以下是代码:

$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不工作?基于文档,它应该。我正在使用&gt; PHP 5.5。 http://php.net/manual/en/function.array-column.php

1 个答案:

答案 0 :(得分:2)

因为wp_get_post_terms返回 object 的数组,而不是2维数组。 array_column仅适用于php 7.0.0之前的二维数组。