Intereting Posts
Отображение содержимого настраиваемого поля в шаблоне LCP Используйте PHP в таблице стилей, чтобы указать фоновое изображение на основе идентификатора категории Использование данных auth_redirect не может изменять информацию заголовка Какой файл wordpress управляет функциональными возможностями плагинов? Как включить метаобъект во время поиска? Комментарии WordPress работают только локально? Фильтры на the_content с плагинами, страницами и коротким кодом У WordPress есть способ изменить «Естественный» размер загруженных изображений? На моей странице single.php не отображаются связанные данные с сообщением, которое нажато Нужен ли мне Multisite? wp_query-> max_num_pages всегда возвращает 0 в пользовательском типе сообщения Как использовать разбивку на страницы? Как создать перенаправление в файле .htaccess с двумя исключениями REST-API: расширение медиа-конечной точки Показать сообщение Meta в заголовке

Выпадающее меню: отображать условия от B только в том случае, если имеет отношение с выбранным членом A

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

Поиск работает хорошо, но я действительно хочу заполнить вторую таксономию (кухню) только с условиями, которые имеют некоторые отношения, основанные на первой выбранной таксономии (город). В первом выпадающем списке, если кто-то выбирает город «Нью-Йорк», второй выпадающий список должен отображать только те термины, которые имеют отношения с «городским термином« Нью-Йорк »на сообщениях ресторанов. Если нет сообщения с «бразильской» кухней и «городом Нью-Йорка», термин «бразильский» не должен появляться во втором выпадающем списке. Конечно, выпадающее меню кухни не должно отображать дублированные термины.

Это возможно? Заранее спасибо!

Solutions Collecting From Web of "Выпадающее меню: отображать условия от B только в том случае, если имеет отношение с выбранным членом A"

Вот часть ответа … как запросить условия, которые вы ищете. Но похоже, что вам понадобится ajax для повторного запроса для каждого выбора.

Город и кухня будут динамичными, но по сути, когда пользователь выбирает город, он заполняет эти данные в переменную $city и т. Д.

Кто-то еще должен будет прослушивать часть ajax.

 <?php $city = array( 'dallas' ); $cuisine = array( 'italian', 'mexican', 'french ); $args = array( 'post_type' => 'restaurant', 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'city', 'field' => 'slug', 'terms' => $city ), array( 'taxonomy' => 'cuisine', 'field' => 'slug', 'terms' => $cuisine ) ) ); ?> 

Извините за долгую задержку в ответе, но спасибо за помощь, ребята, это хорошая ссылка!

vtxyzzy из форума wordpress.org помогите мне с частью запроса, ajax и php сделали сам, не знаю, аккуратно ли это. Вот как появился последний код в functions.php:

 function restaurant_search( $taxonomy ) { ?> <script type="text/javascript"> jQuery(document).ready(function() { $('#cidade').change(function(){ var cidade=jQuery('#cidade').val(); $.ajax({ url:"<?php bloginfo('wpurl'); ?>/wp-admin/admin-ajax.php", type:'POST', data:'action=category_select_action&name=' + cidade, success:function(results) { $("#cozinha").html(results); } }); }); }); </script> <form action="<?php echo home_url('/'); ?>" role="search" method="get"> <?php // First dropdown $term_selected_cidade = get_terms('cidade'); echo '<select id="cidade" name="cidade">'; echo '<option disabled="disabled" selected="selected">Cidade</option>'; foreach ($term_selected_cidade as $term) { echo '<option id=' . $term->term_id . ' value=' . $term->slug . '>' . $term->name . '</option>'; } echo '</select>'; ?> <!-- Second Dropdown --> <select name="cozinha" id="cozinha" > <option>Escolha uma cidade</option> </select> <input type="submit" value="buscar" /> </form> <?php } function implement_ajax() { // Populates the second dropdown with cuisine terms global $wpdb; $cozinha_term = $_POST['name']; $query = " SELECT DISTINCT $wpdb->terms.name, $wpdb->terms.slug FROM $wpdb->terms INNER JOIN $wpdb->term_taxonomy ON $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id INNER JOIN $wpdb->term_relationships ON $wpdb->term_relationships.term_taxonomy_id=$wpdb->term_taxonomy.term_taxonomy_id LEFT JOIN $wpdb->posts ON $wpdb->posts.ID=$wpdb->term_relationships.object_id WHERE $wpdb->term_taxonomy.taxonomy='cozinha' AND $wpdb->posts.ID IN ( SELECT $wpdb->posts.ID FROM $wpdb->terms INNER JOIN $wpdb->term_taxonomy ON $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id INNER JOIN $wpdb->term_relationships ON $wpdb->term_relationships.term_taxonomy_id=$wpdb->term_taxonomy.term_taxonomy_id LEFT JOIN $wpdb->posts ON $wpdb->posts.ID=$wpdb->term_relationships.object_id WHERE $wpdb->term_taxonomy.taxonomy='cidade' AND $wpdb->terms.slug='$cozinha_term')"; $object = $wpdb->get_results($query); $cuisine_terms = array(); for ($i = 0; $i < count($object); $i++) { $cuisine_terms[] = get_object_vars($object[$i]); } echo '<select id="cozinha">' . '<option disabled="disabled" selected="selected">Cozinha</option>'; foreach ($cuisine_terms as $term) { echo '<option value=' . $term['slug'] . '>' . $term['name'] . '</option>'; } echo '</select>'; } add_action('wp_ajax_category_select_action', 'implement_ajax'); add_action('wp_ajax_nopriv_category_select_action', 'implement_ajax');