Intereting Posts
Как переопределить фильтр в дочерней теме? Host wordpress в подкаталоге приложения Rails Добавить div перед первым абзацем the_content Может ли плагин по-прежнему влиять на сайт даже после удаления? Как я могу назначить голосование по комментариям? Обрезать изображение после загрузки на пользовательскую страницу учетной записи Использование save_post для замены заголовка сообщения Что я / это лучшая вещь, которую я могу сделать, чтобы сделать мой блог WordPress более популярным? определить страницу реферала Ограничить пользователей сообщениями для себя WordPress: отображение всех тегов сообщений из определенного термина таксономии Создайте патч с помощью TortoiseSVN Изменение размеров встраиваемых объектов по умолчанию? Отображение части меню, содержащего страницу, которую пользователь просматривает в данный момент, и только ее непосредственные дети Добавить кнопку таблицы в редакторе без плагина

Условный запрос пользовательского типа сообщения и пользовательской таксономии

Я работаю над проектом, который

  • пользовательский тип сообщения, называемый «Заявление об опыте»,
  • Пользовательская таксономия, прикрепленная к типу сообщения, называемая «Экспертиза»,
  • 6 различных терминов для пользовательской таксономии: прибрежные, внутренние, морские, водные, корабельные, телекоммуникационные

Итак, я создал этот цикл, который отлично работает, и я создал шесть разных страниц шаблонов с этим циклом в каждом (я просто изменяю термин для каждого) <?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("post_type=experiencestatements&expertise=coastal&showposts=10&paged=$page"); if ( have_posts() ) : while ( have_posts() ) : the_post() ?> <?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("post_type=experiencestatements&expertise=coastal&showposts=10&paged=$page"); if ( have_posts() ) : while ( have_posts() ) : the_post() ?>

Итак, это работает нормально, но мне нужно создать другую страницу шаблона: ie page-exp-stmt-coastal.php для каждого термина. Я хотел бы иметь только одну страницу шаблона с условными операторами для каждого термина вместо 6 (и подсчета) страниц шаблона. Имея 6+ разных страниц, я должен войти и изменить каждый каждый раз, когда клиент хочет настроить.

В общем, мне нужна помощь в создании условного тега, который меняет цикл в зависимости от термина таксономии. И, я не знаю, как это сделать. Любая помощь приветствуется.

Спасибо, Ларри

Solutions Collecting From Web of "Условный запрос пользовательского типа сообщения и пользовательской таксономии"

Существует несколько способов сделать это, один метод – использовать get_the_terms .

Логикой было бы запустить цикл и настроить вывод на основе терминов для этой таксономии (это, вероятно, не будет работать из коробки).

 //do a custom query here if needed if ( have_posts() ) : while ( have_posts() ) : the_post(); $terms = get_the_terms($post->ID, 'Expertise'); //this will return and array of terms for your Expertise taxonomy. foreach ( $terms as $term ) { if($term->name == 'marine') { // do custom stuff here }elseif($term->name == 'waterway') { // do custom stuff here }elseif .... 

После того, как вы прокомментируете, кажется, что вы не хотите, чтобы пользовательский контент за термины, например, один и тот же контент для всех 6 терминов, это можно сделать только с помощью цикла запроса, опять-таки есть несколько способов сделать это.
http://codex.wordpress.org/Class_Reference/WP_Query

 $args = array( 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'Expertise', 'field' => 'slug', 'terms' => array( 'marine', 'waterway', 'you_other_terms_here' ), ), ) ) $query = new WP_Query( $args ); 

Другой способ – использовать мое первоначальное предложение и просто выполнить совпадение для всех get_the_terms в массиве, который вы хотите использовать in_array , это может быть что-то вроде (продолжение от исходного кода выше), но есть несколько способов сделать это в php:

 foreach ( $terms as $term ) { if (in_array('marine', '$term')) && (in_array('waterway', '$term')) && etc.. //do stuff } 

Не могли бы вы создать шаблон, называемый

таксономией Expertise.php

в соответствии с: http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

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