AntonLitvinenko
@AntonLitvinenko
HTML coder

Как правильно поставить путь в wp_dropdown_categories?

Собственно, уже перерыл все что мог, насколько мой гугл мне позволил
Есть таксономия для типа записи, которая определяет местоположение человека
В админке это области и дети областей - населенные пункты
Выглядит как-то так:
картинка

5f2af35dc89e8157328805.png

Вывожу селектом с помощью такого кода:
Код

if ( is_tax() ) {
	$queried_object = get_queried_object();
	$this_category_id = $queried_object->term_id;
	$selected = $queried_object->slug;
} else {
	$this_category_id = '';
	$selected = '';
}

//echo $selected;

$args = array(
	'show_option_all'    => esc_html__( 'Всі регiони або населенні пункти', 'youth-worker' ),
	//'show_option_none' => __( 'Всі регiони', 'youth-worker' ),
	'option_none_value' => '',
	'orderby'      => 'name',
	'show_count'         => 1,
	'echo'               => 0,
	'hide_empty'         => 0,
	'hide_if_empty'      => 1,
	'hierarchical'       => 1,
	'value_field'        => 'slug',
	'depth'              => 1,
	'child_of'           => $this_category_id,
	'name'               => 'volunteers-location',
	'class'              => 'volunteers-location',
	'taxonomy'           => 'volunteers-location',
	//'selected'           => $selected,
); 

$dropdowncats  = wp_dropdown_categories( $args );
$dropdown_replace = "<select$1 onchange='return this.form.submit()'>"; 
$dropdowncats  = preg_replace( '#<select([^>]*)>#', $dropdown_replace, $dropdowncats ); 

?>


<?php if ( $dropdowncats ) : ?>

	<form id="category-select" class="category-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">

		<div class="search-category-wrapper">
			<div class="select-wrapper">
				<?php echo $dropdowncats; ?>
			</div>
		</div>

		<noscript>
			<input type="submit" value="<?php _e('Шукати', 'youth-worker') ?>">
		</noscript>

	</form>

<?php endif; ?>


так как выводится оно не только на странице таксономии, вначале сделана проверка.
Я выбираю например волынскую область и мне открывает уже страницу архива таксономии, в которой тот же код, я его тяну из темплейта. Только теперь в селекте городА волынской области. Нажав на город идет переход на страницу города и селект скрывается.

урлы при этом такого вида:
youth-worker.loc/volunteers-location/vynnyczkaya-oblast

И вроде все работает, но кое что не работает. Если выбрать в селекте Всі регiони, то кидает и урл такого вида:
youth-worker.loc/?volunteers-location=0

если убрать строчку 'value_field' => 'slug' в аргументах, то все переходы идут на 404 и урлы такого вида:
youth-worker.loc/?volunteers-location=58

Также не получается настроить опцию аргумент selected, потому что у меня как бы от родителя идет, если убрать 'child_of', то начинает работать selected, но естественно перестает работать как надо иерархия, показывает только главные категории.

Я что-то упускаю, но глаз уже замылен.
Мне нужно наверно чтото передать в 'option_none_value' для правильного возврата в начало всех начал, но я не понимаю что.
С селектедом тоже получается нужно передать как-то именно текущий слаг, но он же появляется уже после формирования выпадающего списка

Я уже смотрел и варианты с get_terms и get_categories, но пока что лучше всего подходит текущий вариант кроме этих мелочей.
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы