如果我知道子类别,如何获取父类别?

时间:2013-11-22 作者:Jon Furry

所以我在这里得到了这个函数,它只从子类别创建一个下拉菜单,效果很好。

问题是,我需要获取父类别名称,并将其指定为子类别菜单的选项类的值。我似乎无法让它发挥作用,我只能得到“/”或“/child\\u Category\\u name/”

谢谢

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

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




$categories = get_categories( $args );

$menu = \'<select name="\'.$dropID.\'" id="\'.$dropID.\'" class="postform">\';
$menu .=\'<option value="">--</option>\';

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

        $menu .= \'<option class="\'.get_category_parents().\'" value="\'.$category->name.\'">\'.$category->name.\'</option>\';
    }
}   
$menu .= \'</select>\';
echo $menu;
}

1 个回复
SO网友:Morgan Estes

get_category_parents() 要求将类别ID作为第一个参数传递,并返回一个数组,该数组包含所有父级,由/ 默认情况下。您可以将其更改为空格,以将其包含在类列表中:

foreach ( $categories as $category ) {
    // Get the parents, separated by a space
    $parents = get_category_parents( $category->id, false, \' \' );

    // If $parents isn\'t an error, carry on
    if ( ! is_a( $parents, \'WP_Error\' ) ) {
        $menu .= \'<option class="\' . $parents . \'" value="\' . $category->name . \'">\' . $category->name . \'</option>\';
    }
}
如果你想得到各种古怪的东西,你也可以这样打印你的HTML:

$menu .= sprintf( "<option class=\'%s\' value=\'%s\'>%s</option>",
                  esc_attr( $parents ),
                  esc_attr( $category->name ),
                  esc_attr__( $category->name )
         ); 

结束

相关推荐

Get_the_Categories筛选器返回空数组

我正在开发一个主题,使用get_the_category_list() 函数(在category template.php中)。通过检查其代码,此函数调用get_the_category() 函数(位于category template.php中),该函数应用get_the_categories 末端过滤器:return apply_filters( \'get_the_categories\', $categories ); 出于某种奇怪的原因,此过滤器返回一个空数组。如果我将此行替换为:re