Я работаю над проектом, который
- настраиваемый тип сообщения под названием «Утверждение опыта»
- Пользовательская таксономия, прикрепленная к этому типу сообщений под названием «Экспертиза».
- 6 различных терминов для пользовательской таксономии: прибрежные, внутренние, морские, водные, морские, телекоммуникационные.
Итак, я создал этот цикл, который отлично работает, и я создал 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() ?>
Итак, это работает нормально, но мне нужно создать другую страницу шаблона: например, page-exp-stmt-coastal.php для каждого термина. Я хотел бы иметь только одну страницу шаблона с условными операторами для каждого термина вместо 6 (и подсчета) страниц шаблона. Наличие 6+ разных страниц означает, что мне нужно заходить и менять каждую каждый раз, когда клиент хочет что-то изменить.
В общем, мне нужна помощь в создании условного тега, который меняет цикл в зависимости от термина таксономии. И я понятия не имею, как это сделать. Любая помощь приветствуется.
Спасибо, Ларри.
Есть несколько способов сделать это, один из них — использовать
get_the_terms
.Логика будет заключаться в том, чтобы запустить цикл и настроить вывод на основе терминов для этой таксономии (это, вероятно, не будет работать из коробки).
После того, как вы прокомментируете, кажется, что вам не нужен настраиваемый контент для каждого термина, то есть один и тот же контент для всех 6 терминов, это можно сделать с помощью всего лишь цикла запроса, опять же, есть несколько способов сделать это.
http://codex.wordpress.org/Class_Reference/WP_Query
Другой способ — использовать мое первоначальное предложение и просто сопоставить все
get_the_terms
в массиве, который вы хотите использоватьin_array
, это может быть что-то вроде (продолжение исходного кода выше), но есть несколько способов сделать это в php:Спасибо, Вик, это позволило бы мне разместить весь контент на одной странице. Это будет полезно. Но вот еще уточнение того, что я хочу. Я хочу использовать один и тот же контент (.. делать здесь пользовательские вещи..) для каждого термина. Есть ли способ создать одну страницу шаблона, которую я применяю к этим 6 страницам, а затем, в зависимости от того, какая это страница, может быть, идентификатор страницы, цикл изменится ??? Другими словами, я бы предпочел не копировать и не вставлять «сделать пользовательский материал здесь» повторно, потому что эта часть довольно обширна, много настраиваемых полей и т. д.
Непонятно, почему вы использовали 6 страниц, когда кажется, что вам просто нужен базовый цикл для этих терминов без какого-либо пользовательского контента. Я скорректирую ответ выше.
не могли бы вы создать шаблон под названием
таксономия-Expertise.php
согласно: http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display
похоже, вам вообще не нужно настраивать цикл, поскольку WP уже будет использовать соответствующий запрос для каждого термина в таксономии. но вы все равно можете проверить имя термина здесь (оно будет в переменных запроса) и вызвать другой код отображения в соответствии с требованиями.