Intereting Posts
Назначить автоматически и вручную изменить категорию Мета-бокс не появляется Как использовать google api для входа в wordpress Получить тег Slugs, начинающийся со слова Получить имя категории в запросе Вытягивать комментарии с одной страницы / сообщения на другую страницу / сообщение? Лучше ли создавать репозиторий Git на корневом уровне или в каталоге тем WordPress? Остановить ошибку «загрузить размер файла» из печати Шаблон страницы дает «Ошибка анализа: синтаксическая ошибка» при использовании, но ошибки не обнаружено! Как получить, если детская категория этой категории пуста? Преднамеренно превышать max_num_pages по основному запросу без получения 404? Получить категорию, зафиксированную в раскрывающихся категориях просмотра Использую ли я правильный крючок для удаления быстрых тэгов в admin TinyMCE? Таблица сравнения цен на основе пользовательского типа сообщений? Thumbnail With Next / Prev Links Не показывая следующую запись?

Как фильтровать условия таксономии на основе другого таксономического термина

Я создал пользовательский тип сообщения, называемый «Тур», который вмещает до пяти таксономий, называемых «пункт назначения», «Типы», «Месяц путешествия», «Год путешествия» и «Под руководством».

Теперь я привел их как раскрывающуюся категорию, используя «wp_dropdown_categories» – (каждая из таксономии была указана как раскрывающаяся). и поисковый запрос отлично работает в комбинациях (если они существуют).

например: Я ищу «пункт назначения», как «Бангалор» и «Месяц путешествия», поскольку комбинация «Июнь» работает, поскольку почта была выбрана на определенных условиях. ~ Это прекрасно.

Но, когда нет выбора, выбранного для комбинации категорий / без поиска, … Это вызывает «Нет сообщений». ~ его общие вещи в прессе.

Поэтому я предпочитаю отфильтровывать TAXONOMIES на основе предыдущих TAXONOMIES (его немного запутывает при их отношении).

Вот основная концепция:

Если я выбираю «пункт назначения» как «Бангалор», мне нужен «Тип» для фильтрации по месту назначения. то есть в Бангалоре могут быть только два типа: «Тип типа и тип B» остальное типа следует игнорировать. – (Еще раз все пять вещей входят в число таксономий).

Я хочу что-то вроде этого введите описание изображения здесь

если post_type = tour & tour_destination = bangalore фильтровать другие таксономии с соответствующими терминами?

Помогите мне ~ спасибо заранее

DEV

Я сделал несколько настроек в более раннем коде, первый фильтр работает нормально, я немного смущен, остальное предложение sven? вы можете помочь мне эффективно это сделать.

<!-- last edit started by dev --> <script type="text/javascript"> function onchangedestination(str) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("data").innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET","http://example.com/ajax?opt="+str, true); xmlhttp.send(); } </script> <select class="tourdestination" name="tourdestination" id="tourdestination" onchange="onchangedestination(this.value);"> <option value="" selected="selected">All Destinations</option> <?php foreach( get_categories('taxonomy=tour_destination&post_type=tour&hide_empty=false') as $cat ) : if( !$cat->parent ) // if cat info not has parents { echo '<option value="' . $cat->term_id . '" >' . $cat->name . '</option>'; category_tree( $cat->term_id ); } endforeach; wp_reset_query(); function category_tree( $cat ) { // passing ids of category $args = array('category__in' => array( $cat )); $next = get_categories('taxonomy=tour_destination&hide_empty=false&parent=' . $cat); if( $next ) : foreach( $next as $cat ) : echo '<option value="' . $cat->term_id . '" >&nbsp;' . $cat->name.'</option>'; category_tree( $cat->term_id ); endforeach; endif; } ?> </select> <div id="data"></div> 

файл test.php

 <?php $opt = $_GET['opt']; $pages = get_posts(array( 'post_type' => 'tour', 'numberposts' => -1, 'tax_query' => array( array ( 'taxonomy' => 'tour_destination', 'field' => 'id', 'terms' => $opt, // above code will return the id here. 'include_children' => false ) ) )); $post_id =array(); //$tour_type = array(); $categories = array(); foreach ($pages as $page) { $post_id[] = $page->ID; } ?> <?php //echo $count = count($post_id) . 'Total Posts <br>'; ?> <?php foreach($post_id as $p_ID): ?> <?php $tours = wp_get_post_terms($p_ID, 'tour_type', array("fields" => "all")); ?> <?php $month_travels = wp_get_post_terms($p_ID, 'month_travel', array("fields" => "all")); ?> <?php $year_travels = wp_get_post_terms($p_ID, 'year_travel', array("fields" => "all")); ?> <?php $led_bys = wp_get_post_terms($p_ID, 'led_by', array("fields" => "all")); ?> <!-- fetching tour data --> <?php foreach($tours as $tour): ?> <?php $array_tour['id'] = $tour->term_id; ?> <?php $array_tour['name'] = $tour->name; ?> <?php endforeach; ?> <!-- fetching month data --> <?php foreach($month_travels as $month_travel): ?> <?php $array_month['id'] = $month_travel->term_id; ?> <?php $array_month['name'] = $month_travel->name; ?> <?php endforeach; ?> <!-- fetching year data --> <?php foreach($year_travels as $year_travel): ?> <?php $array_year['id'] = $year_travel->term_id; ?> <?php $array_year['name'] = $year_travel->name; ?> <?php endforeach; ?> <!-- fetching led by data --> <?php foreach($led_bys as $led_by): ?> <?php $array_led_by['id'] = $led_by->term_id; ?> <?php $array_led_by['name'] = $led_by->name; ?> <?php endforeach; ?> <?php $categories_tour[] = array('id' => $array_tour['id'], 'name' => $array_tour['name']); ?> <?php $categories_month[] = array('id' => $array_month['id'], 'name' => $array_month['name']); ?> <?php $categories_year[] = array('id' => $array_year['id'], 'name' => $array_year['name']); ?> <?php $categories_led_by[] = array('id' => $array_led_by['id'], 'name' => $array_led_by['name']); ?> <?php endforeach; ?> <!--Removing duplicates--> <?php $input_tour = array_map("unserialize", array_unique(array_map("serialize", $categories_tour))); ?> <?php $input_month = array_map("unserialize", array_unique(array_map("serialize", $categories_month))); ?> <?php $input_year = array_map("unserialize", array_unique(array_map("serialize", $categories_year))); ?> <?php $input_led_by = array_map("unserialize", array_unique(array_map("serialize", $categories_led_by))); ?> <select id="type"> <?php foreach($input_tour as $tour_category): ?> <?php echo "<option id=" . $tour_category['id'] .">" . $tour_category['name'] . "</option>"; ?> <?php endforeach; ?> </select> <select id="month"> <?php foreach($input_month as $month_category): ?> <?php echo "<option id=" . $month_category['id'] .">" . $month_category['name'] . "</option>"; ?> <?php endforeach; ?> </select> <select id="year"> <?php foreach($input_year as $year_category): ?> <?php echo "<option id=" . $year_category['id'] .">" . $year_category['name'] . "</option>"; ?> <?php endforeach; ?> </select> <select id="led_by"> <?php foreach($input_led_by as $led_by_category): ?> <?php echo "<option id=" . $led_by_category['id'] .">" . $led_by_category['name'] . "</option>"; ?> <?php endforeach; ?> </select> 

Если я ошибаюсь, где бы вы ни советовали мне …, спасибо