Как получить родительскую категорию, если я знаю категорию ребенка?

Итак, Ive получил эту функцию здесь, которая создает раскрывающееся меню только из дочерних категорий, оно отлично работает.

Проблема в том, что мне нужно получить имя родительских категорий и назначить его как значение класса option для меню дочерних категорий. Я не могу заставить его работать, все, что я получаю, это либо «/», либо «/ child_Category_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; 

}

Solutions Collecting From Web of "Как получить родительскую категорию, если я знаю категорию ребенка?"

get_category_parents() требует, чтобы идентификатор категории передавался как первый параметр и возвращался массив строка всех родителей, разделенных / по умолчанию. Вы можете изменить это на пробел, чтобы включить их в свой список классов:

 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>'; } } 

Если вы хотите получить все виды kooky, вы также можете распечатать свой HTML следующим образом:

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