Intereting Posts
Как изменить URL-адрес приложения wordpress и защитить его? Переписать URL страницы правила с категорией Отображать пользовательские сообщения для каждой категории из пользовательской таксономии Почему я не могу использовать переменную вне моей функции? Обновление страницы прерывает постоянные ссылки Создание системы голосования комментариев wp_star_rating () не отображает звезды в сообщении Как полностью отключить основной цикл главной страницы? Есть хороший плагин для социальных закладок на сайте для WordPress Укрепление wordpress: разрешения файлов wp-content? Заказывать сообщения по дате, а затем по специальному полю Как настроить стиль пользовательского редактора при редактировании главной страницы? Как отображать описания категорий WooCommerce на каждой странице категории без отображения описания родительской категории? Кнопки стиля стиля внутри страницы редактирования (пользовательские поля) Пользовательские скрипты на страницу или пользовательский тип сообщения

Как получить выбранную таксономию или идентификатор категории при использовании пользовательского ходока?

Я создаю выпадающие taxonomy->child taxonomy где ребенок будет активен только в том случае, если выбран родитель. Все работает отлично, за исключением того, что я использую wp_dropdown_categories для родителя, а значение, которое я получаю, является идентификатором выбранного элемента, а не slug или name.

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

  wp_dropdown_categories(array( 'show_count' => 1, 'selected' => 0, 'hierarchical' => 1, 'depth' => 1, 'hide_empty' => 0, 'tab_index' => $tabindex, 'class' => 'gt-select', 'show_option_none' => 'Select Product', 'name' => 'cat', 'id' => 'my-product', 'taxonomy' => 'products', 'walker' => new Walker_CategoryDropdown_Custom(), )); 

Код таксономии детей:

 $cat_id = sanitize_text_field($_POST['cat']); $cat_query = "child_of={$cat_id}&hide_empty=0&taxonomy=products"; $categories = get_categories($cat_query); $options = '<option value="-1">Select Color</option>'; foreach ($categories as $cat) { $name = $cat->name; $value = $cat->term_id; $label = "{$cat->cat_name} ({$cat->category_count})"; $options .= "<option value=\"{$name}\" data-value=\"{$value}\">{$label}</option>"; } $return = array( 'options' => $options, ); 

Проблема с использованием Custom Walker заключается в том, что теперь вместо получения идентификатора здесь:

 $cat_id = sanitize_text_field($_POST['cat']); 

Я получаю имя родительской категории или slug, если я wp_dropdown_categories() , все работает отлично, но wp_dropdown_categories() новую запись с идентификационным номером в категории вместо обновления существующего.

Я добавляю Custom Walker здесь только для справки:

 class Walker_CategoryDropdown_Custom extends Walker_CategoryDropdown { function start_el(&$output , $category , $depth , $args) { $pad = str_repeat(' ' , $depth * 3);$cat_name = apply_filters('list_cats' , $category->name , $category); $output .= "\t<option class=\"level-$depth\" value=\"" . $category->name . "\" data-value=\"" . $category->term_id . "\""; if ( $category->term_id == $args[ 'selected' ] ) $output .= ' selected="selected"'; $output .= '>'; $output .= $pad . $cat_name; if ( $args[ 'show_count' ] ) $output .= ' (' . $category->count . ')'; if ( array_key_exists('show_last_update', $args) && $args[ 'show_last_update' ] ) { $format = 'Ym-d'; $output .= ' ' . gmdate($format , $category->last_update_timestamp); } $output .= "</option>\n"; } } 

Значение выходного сигнала:

 value=\"" . $category->name . "\" 

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

Если я изменю это в ходунке, чтобы:

 value=\"" . $category->term_id . "\" 

Ребенок будет заполняться, но родительская категория не будет обновляться, и она будет вставляться в качестве новой записи с идентификационным номером в качестве метки.

В основном мне нужно найти способ получить выделенный идентификатор категории из wp_dropdown_categories() и передать это здесь:

 $cat_id = sanitize_text_field($_POST['cat']); 

Solutions Collecting From Web of "Как получить выбранную таксономию или идентификатор категории при использовании пользовательского ходока?"