Intereting Posts
Как предотвратить добавление предметов в корзину для конкретного состояния в wordpress Подход к созданию сайта с этой структурой Как «Название страницы» отличается от «Название меню» в wordpress 3.0.3? Проверьте, существует ли Cookie Password Protection Cookie Uncaught SyntaxError: Неожиданный токен Незаконный Нестандартные метаданные типа сообщения не сохраняются Удаленные страницы НЕ удаляются из пользовательских меню? сложный вопрос запроса Как объединить несколько сайтов в WordPress MU Ограничить количество страниц, созданных пейджингом передавая аргумент get_template_part () или лучший способ кодирования Объедините 2 аргумента в одном WP_Query и закажите его по дате Скопируйте шаблон с плагинами другому хостинг-провайдеру Как разрешить одному сообщению иметь собственное доменное имя Получить выбранный URL-адрес из списка страниц wplink для использования в коротком коде

Получить термин по пользовательской терминологии мета и таксономии

Как получить термин по пользовательскому термину meta и таксономии или как фильтровать tax_query по термину meta вместо slug / id ?

 function custom_pre_get_posts($query) { global $wp_query; if ( !is_admin() && is_shop() && $query->is_main_query() && is_post_type_archive( "product" )) { $term = ???get_term_by_meta_and_taxonomy???('custom_meta_term','my_taxonomy'); $t_id = $term['term_id']; $tax_query = array ( array ( 'taxonomy' => 'my_taxoomy', 'field' => 'id', 'terms' => $t_id ) ); $query->set( 'tax_query', $tax_query ); } } add_action( 'pre_get_posts', 'custom_pre_get_posts' ); 

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

Например, прокручивая каждый термин для проверки пользовательской мета:

 $term_args = array( 'taxonomy' => $taxonomy_name, ); $terms = get_terms( $term_args ); $term_ids = array(); foreach( $terms as $term ) { $key = get_term_meta( $term->ID, 'meta_key', true ); if( $key == 'meta_value' ) { // push the ID into the array $term_ids[] = $term->ID; } } 

Затем вы получаете переменную $ term_ids, которая содержит массив идентификаторов терминов, которые вы ищете. Вы можете передать это в свой налоговый запрос.

Попробуй это:

 $args = array( 'hide_empty' => false, // also retrieve terms which are not used yet 'meta_query' => array( array( 'key' => 'feature-group', 'value' => 'kitchen', 'compare' => 'LIKE' ) ) ); $terms = get_terms( 'category', $args );