Intereting Posts
Сортировка пользовательских типов сообщений по фамилии в бэкэнд Пользовательский короткий код вызывает WSOD Синхронизировать сайт WordPress между двумя разными серверами получить post_date ID Какой способ можно использовать для добавления JavaScript в сообщение на странице с использованием шаблона темы, который не включает get_header () и get_footer ()? Многоразовый код, который я могу хранить в функции.php и применять к другим шаблонам по мере необходимости. Сухой код API AdWords с WP Как заменить значения в WordPress DB с помощью phpMyAdmin Ошибки TinyMCE после обновления 3.7.1 до 3.9.1 Как вставить в очередь стиль с помощью wp_enqueue_style () ОГРАНИЧИТЬ РЕДАКТИРОВАНИЕ файлов PHP? Как отобразить отсортированные сообщения на странице «Все сообщения» При переадресации имени на другую домашнюю страницу, если пользователь использует мобильный телефон Порядок WP_Query по количеству понравившихся откуда этот $ post_id?

Залить параметр term_query terms с почтовым термином

Мне нужно заполнить параметр terms в моем tax_query текущим сроком публикации.

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

Я использую страницу codex как ссылку, но я не могу заставить ее заполнять.

Может кто-то указать мне верное направление??

//Returns Array of Term Names for "topic" $term_list = wp_get_post_terms($post->ID, 'topic', array("fields" => "names")); echo $term_list; $args = array ( 'post_type' => 'knowledge-base', 'orderby' => 'meta_value_num', 'meta_key' => 'top_four_num', 'tax_query' => array( array( 'taxonomy' => 'topic', 'field' => 'slug', 'terms' => $term_list, ), ), ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); echo '<h2>' . the_title() . '</h2>'; } } // Restore original Post Data wp_reset_postdata(); 

Любая помощь высоко ценится!

У вас здесь пара проблем.

  • Как ваш стенд кода, $post не определено. На самом деле лучше использовать get_the_ID() чтобы получить идентификатор сообщения вместо $post

  • wp_get_post_terms() делает дополнительный вызов db, поэтому, если вы действительно настроены на производительность, я предпочел бы использовать get_the_terms()

  • Вы возвращаете имена терминов, но затем tax_query параметр field в вашем tax_query для slug . Значение поля должно соответствовать значению переданного термина. Просто заметьте, никогда не используйте поле name в tax_query , есть проблема с санацией имени в классе WP_Tax_Query . Если вы используете wp_get_post_terms() , установите для параметра fields значение ids для возврата массива терминов ids

ПРИМЕРЫ

wp_get_post_terms()

 $term_list = wp_get_post_terms( get_the_ID(), 'topic', array( 'fields' => 'ids' ) ); if ( $term_list && !is_wp_error( $term_list ) ) { $args = array ( 'post_type' => 'knowledge-base', 'orderby' => 'meta_value_num', 'meta_key' => 'top_four_num', 'tax_query' => array( array( 'taxonomy' => 'topic', 'terms' => $term_list, ), ), ); // Run your custom query here } 

get_the_terms()

 $terms = get_the_terms( get_the_ID(), 'topic' ); if ( $terms && !is_wp_error( $terms ) ) { $term_list = wp_list_pluck( $terms, 'term_id' ); $args = array ( 'post_type' => 'knowledge-base', 'orderby' => 'meta_value_num', 'meta_key' => 'top_four_num', 'tax_query' => array( array( 'taxonomy' => 'topic', 'terms' => $term_list, ), ), ); // Run your custom query here }