Это учебное пособие является вторым в серии из четырех частей, в которой вы изучите некоторые приемы работы с изображениями во вложениях в 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 .