Это учебное пособие является вторым в серии из четырех частей, в которой вы изучите некоторые приемы работы с изображениями во вложениях в WordPress, которые предоставляют расширенные возможности.
В этой серии я расскажу:
- присвоение категорий и таксономий приложениям,
- запрос медиа-файлов по таксономии, чтобы вы могли выводить их в пользовательском цикле,
- использование таксономических запросов для изображений для отображения их на страницах архива,
- добавление изображения к категории или таксономическому термину в качестве категории или элемента «рекомендуемое изображение»
В первой части я продемонстрировал, как создавать новые таксономии для вложений. В частях 2 и 3 я покажу вам, как создавать пользовательские циклы для отображения вложений в шаблоне. В этом уроке я создам пользовательский файл шаблона для документов и создам цикл, который отображает ссылку на медиа-файл для каждого документа.
Примечание. Если вы хотите применить существующие категории и теги к медиафайлам, см. Мое руководство по назначению категорий и тегов для вложений .
Что вам нужно
Чтобы следовать этому уроку, вам понадобится следующее:
- установка для разработки WordPress
- FTP-доступ (или MAMP или аналогичный, если вы работаете локально)
- редактор кода
В первой части я создал плагин для регистрации таксономий, но в этой части я буду создавать собственную тему, которая будет дочерней темой двадцати четырнадцати с новым файлом шаблона, таблицей стилей и файлом функций.
Если вы создаете пользовательскую тему, используя шаги, которые я здесь выполняю, вам также необходимо убедиться, что плагин, созданный в первой части, активирован — новый файл шаблона не будет работать без него.
Если вы предпочитаете, вы можете просто скопировать код из плагина в файл функций вашей темы, хотя я предпочитаю сохранять пользовательские типы постов в плагинах, поскольку они не зависят от темы. Пакет кода для этого урока включает в себя плагин и новую дочернюю тему, которая будет работать, только если у вас установлено двадцать четырнадцать.
1. Создание детской темы
 Первый шаг — создать дочернюю тему.  Создайте новую папку в каталоге тем, дайте ей соответствующее имя и добавьте в style.css новый файл style.css . 
Примечание. Если вы добавляете шаблон в существующую тему, вы можете пропустить этот шаг.
В таблицу стилей добавьте следующее:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 | /*  Theme Name: WPTutsPlus Advanced Use of Attachments — Part 2  Theme URI: http://rachelmccollin.co.uk/wptutsplus-advanced-use-of-attachments-in-wordpress/  Description: Theme to accompany Part 2 in tutorial series on advanced use of attachments  Author: Rachel McCollin  Author URI: http://rachelmccollin.co.uk  Template: twentyfourteen  Version: 1.0.0  Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready  Text Domain: twenty-fourteen-child */ @import url(«../twentyfourteen/style.css»); | 
Это создаст новую дочернюю тему двадцать четырнадцатой темы. Вам не нужно ничего добавлять в эту таблицу стилей.
2. Создание файла шаблона
  Чтобы отобразить вложения в таксономии document-category которую вы настроили, если вы читали первый учебник этой серии, вам нужно создать файл шаблона таксономии. 
  В вашей новой дочерней теме добавьте файл под названием taxonomy-document-category.php . 
Перед добавлением пользовательского цикла для вложений вам нужно добавить разметку, чтобы обернуть ее, которую вы можете либо скопировать из файла в родительской теме, либо взять из кода ниже.
Примечание. Если вы используете свою собственную тему, скопируйте этот код из одного из файлов шаблонов вашей темы, но не указывайте содержимое цикла.
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 | <?php /**   * template for displaying documents   * uses a custom query which displays a link to the atachment file instead of outputting the content   */ get_header(); ?> <div class=»main-content» id=»main-content»>   <div class=»content-area» id=»primary»>     <div class=»site-content» id=»content» role=»main»>       <header class=»page-header»>         <?php $queried_object = get_queried_object();         echo ‘<h1 class=»page-title»>Document Category — ‘ .       </header><!— .page-header —>     </div><!— #content —> </div><!— #primary —> <?php get_sidebar( ‘content’ ); </div><!— #main-content —> <?php get_sidebar(); | 
  Обратите внимание, что я использовал get_queried_object для вывода заголовка страницы внутри элемента h1. 
3. Использование parse_query для добавления вложений в основной запрос
  По умолчанию основной запрос WordPress не включает вложения.  Один из способов обойти это — добавить новый запрос в файл шаблона с помощью WP_Query , но имеет смысл придерживаться основного запроса, так как WordPress будет работать в любом случае.  Для этого вы используете фильтр parse_query . 
  Так что вам нужно добавить это в вашу тему.  Создайте файл functions.php в своей теме и добавьте в него следующее: 
| 01 02 03 04 05 06 07 08 09 10 11 12 | <?php // add attachments to the main query using parse_query function wptutsplus_add_attachments_to_tax_query() {      global $wp_query;      // When inside a custom taxonomy archive include attachments      if ( is_tax( array( ‘document-category’, ‘gallery-category’ ) ) ) {          $wp_query->query_vars[‘post_type’] = array( ‘attachment’ );          $wp_query->query_vars[‘post_status’] = array( null );         return $wp_query;     } } add_action(‘parse_query’, ‘wptutsplus_add_attachments_to_tax_query’); | 
  При этом используется фильтр parse_query для добавления вложений в основной запрос WordPress, но только когда отображается архив для одной из двух таксономий, примененных к вложениям. 
4. Создание пользовательского цикла
  Наконец, в файл шаблона, созданный на шаге 2, добавьте следующее после закрывающего </header> : 
| 1 2 3 4 5 6 7 | <?php  if ( have_posts() ) :  else :     // If no content, include the «No posts found» template.     get_template_part( ‘content’, ‘none’ ); endif; ?> | 
  Здесь я использую wp_get_attachment_url() которая связывается непосредственно с самим файлом — если вы хотите вместо этого ссылаться на страницу вложения, вы бы использовали get_attachment_link() . 
Наконец, сохраните свой код и взгляните на свою страницу архива. Я добавил несколько документов на свой сайт (которые я скачал из Википедии), как вы можете видеть на скриншоте моей медиатеки:

  На приведенном ниже снимке экрана показана страница моего архива для термина «Открытый исходный код» в таксономии document-category .  Если я нажму на любую из этих ссылок, я попаду прямо к самому документу. 

Резюме
Из этого руководства вы узнали, как использовать таксономии, применяемые к вложениям, для создания собственного шаблона и отображения списка ссылок на загруженные документы. Это было бы полезно, если вы разрабатываете сайт, который будет использоваться, например, в качестве хранилища документов.
  В следующем уроке я покажу, как создать пользовательский файл шаблона для изображений, который будет отображать все изображения с заданным термином в таксономии gallery-category .