如何从ID获取自定义分类父类别名称?

时间:2013-11-26 03:11:01

标签: php wordpress taxonomy

此功能仅从自定义分类子项类别创建选择菜单。

function cityDropdown($dropID, $taxonomy, $exclude) {

    $catArgs = array(
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 0,
    'hierarchical'             => 1,
    'exclude'                  => $exclude,
    'taxonomy'                 => $taxonomy,
    'pad_counts'               => false );




    $categories = get_categories( $catArgs );

    $menu = '<select name="cityDropdown" id="'.$dropID.'">';
    $menu .= '<option value="">(City)</option>';

    foreach($categories as $category)
    {


        if($category->parent != 0 ) {

            $parent = $category->category_parent;

            $menu .= '<option class="'.$parent.'" value="'.$category->name.'" name="'.$category->name.'">'.$category->name.'</option>';
        }
    }   
    $menu .= '</select>';
    echo $menu;

}

除了一件事外,它运作正常:

$parent = $category->category_parent;

给我一​​个父类别的ID,这很酷,而且它适用于我需要做的事情,但是,如果它可以给我父类的名称而不是ID,那将会好得多

我尝试了single_term_title($parent)但没有做任何事情,我也试过了single_cat_title($parent),但这也是空白。

2 个答案:

答案 0 :(得分:2)

试试$parent_term = get_term($parent,'category')。然后是$parent_term->name,虽然如果你要将一个类基于一个术语,我会使用$parent_term->slug,因为->name可以为你提供空格,这对CSS类名来说是不可取的但你真的不能给选项标签一个类(见下面)。

额外:

根据{{​​3}},

<option>标记实际上没有name属性。您可能需要id而不是name

另外,当我动态生成选项时,我会尝试将value属性视为我想要用作数组索引或变量名的id,所以我想确保它是一个整数或者是一个可靠的无空间文本ID。对于WP分类法,我建议使用$ category-&gt; term_id或$ category-&gt; slug作为值,当然还有内部html的$ category-&gt;名称。

答案 1 :(得分:0)

你快到了。要返回自定义分类术语的完整数据数组,请尝试:

$parent = get_term( $category->category_parent, $taxonomy );

现在,您可以访问术语数组,其中包括$parent->name$parent->slug$parent->description