如何获得具有所有类别和对应名称的数组?

时间:2020-06-20 作者:ralphjsmit

我想在Wordpress自定义程序中创建一个包含所有现有类别的选择器控件,为此,我需要一个包含所有类别及其名称的数组。

我需要这样的数组:

[
        \'category_one\' => esc_html__( \'Category name 1\', \'kirki\' ),
        \'category_two\' => esc_html__( \'Category name 2\', \'kirki\' ),
        \'category_three\' => esc_html__( \'Category name 3\', \'kirki\' ),
        \'category_four\' => esc_html__( \'Category name 4\', \'kirki\' ),
],
(我使用的是Kirki框架,但这与这个问题不太相关,因为它只是关于获取数组)。

我想我可以这样做:

    $categories = get_categories( array(
    \'orderby\' => \'name\',
    \'parent\'  => 0
) );
    
但这给了我一种太复杂的数组和太多的信息。

如果可能的话,如果同样的操作也可以通过标记完成,然后组合成一个数组,那就太好了。组合可以通过PHP操作符完成,它实际上是关于获得一个包含类别和名称的数组。

提前多谢!

1 个回复
最合适的回答,由SO网友:ViralP 整理而成

问题中的这部分代码将只获取父类别,因为\'parent\' => 0, 如果需要所有类别,请将其从阵列中删除

$categories = get_categories( array(
    \'orderby\' => \'name\',
    \'parent\'  => 0
) );

// You can iterate over the list of objects returned by `get_categories` 
// to achieve list of categories in required format.

$category_list = array();
foreach( $categories as $category ) {
    $category_list[$category->slug] = esc_html__( $category->name, \'kirki\' );
}

相关推荐

使用ajax-unset($ARRAY[$KEY])从存储在自定义字段中的数组中删除整个[$KEY];不起作用

我希望使用Ajax删除密钥[1] 从存储在自定义用户字段中的以下数组中,然后重新保存它。。。我试图通过使用unset($array[$key]) 然后保存更新的值,但恐怕没有成功。谢谢你的帮助。。。Array ( [0] => Array ( [dna_cal_when] => 1576926000 [dna_cal_position_id] => [dna_cal_candidate_id] =>