Расширенное использование вложений WordPress: Создание специального изображения для категории

СКАЧАТЬ ИСХОДНЫЕ ФАЙЛЫ | ПОСМОТРЕТЬ Просмотр

Расширенное использование вложений WordPress: Создание специального картинки для категории Эта статья будет заключительной из серии о работе с картинками во вложениях WordPress, которые предлагают нам дополнительные функции.

В данной серии статей я рассказываю:

  • О присвоении вложениям категорий и таксономий;
  • О создании запросов медиафайлов по категориям и таксономиям для вывода в пользовательском цикле;
  • Об использовании запросов таксономий и категорий картинок для их вывода на страницах архивов;
  • О добавлении картинок терминам и таксономиям в виде «специального«.

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

В данной заключительной статье я расскажу, как присвоить изображению категорию, а далее отредактировать шаблон архива категории, чтобы вывести это изображение в виде «специального«. Аналогичным образом вы можете сделать то же самое для терминов тегов или таксономий.

Для данной статьи я создам дочернюю тему от темы twentyfourteen. Созданная тема содержит файл возможностей и файл пользовательского шаблона для архивов категорий. Вы можете легко скачать эту тему по ссылке.

Что вам понадобится

  • Установленная система WordPress;
  • Доступ по FTP(или установленный локальный веб-сервер);
  • Редактор кода.

1. Применение категорий к вложениям

По умолчанию WordPress не может назначать категории и теги для вложений. Как запросто это исправить, я показала в предыдущих статьях по назначению категорий и тегов для вложений.

Примечание: Этот способ работает для тегов и категорий. Если вы применяете его для собственных таксономий, то надо во время регистрации таксономии указать вложения в виде типа записей, к которым она применяется. Данная процедура описана в первой части данной серии.

В папке темы создайте файл с именем functions.php и добавьте в него следующий код:

<?php // добавление категорий для вложений function wptp_add_categories_to_attachments() { register_taxonomy_for_object_type( 'category', 'attachment'); } add_action( 'init', 'wptp_add_categories_to_attachments');?>

Здесь я использовала возможность register_taxonomy_for_object_type(), чтобы добавить категории для вложений. Сейчас, когда вы перейдете в раздел Медиафайлы> Библиотека, вы увидите, что категории подключены для медиафайлов.

Дальше нам необходимо добавить пару картинок: по одному для каждой категории. Вы также должны добавить ещё одну категорию под названием «Featured» и назначить ее для каждого картинки.

На рисунке ниже приведен снимок панели редактирования, в которой отображаются и категории:

Расширенное использование вложений WordPress: Создание специального картинки для категории На этом скриншоте приведены все мои картинки с назначенными категориями:
Расширенное использование вложений WordPress: Создание специального картинки для категории Я также добавлю пару записей и помещу их в соответствующие категории, чтобы они выводились на страницах архивов:
Расширенное использование вложений WordPress: Создание специального картинки для категории

2. Создание шаблона категории

Далее нам необходимо создать пользовательский шаблон категории. Поскольку моя тема будет дочерней от twentyfourteen, я скопирую в нее файл category.php данной темы, с некоторыми изменениями в начальных комментариях:

<?php /** * The template for displaying Category pages * Custom template which displays a featured image first. * Supports Part 4 of tutorial series on Advanced Use of Images in WordPress for WPTutsplus */ get_header();?><section class="content-area" id="primary"> <div class="site-content" id="content" role="main"><?php if( have_posts()):?> <header class="archive-header">     <h1 class="archive-title"></h1>        <?php           // Показать дополнительное описание термина.          $term_description = term_description();          if(! empty( $term_description)):            printf( '<div class="taxonomy-description">%s</div>', $term_description);          endif;   ?>    </header><!-- .archive-header --><?php   // Запуск цикла.                     while ( have_posts() ) : the_post();                               /*                                  * Include the post format-specific template for the content. If you want to                                     * use this in a child theme, then include a file called called content-___.php                                      * (where ___ is the post format) and that will be used instead.                                */                             get_template_part( 'content', get_post_format() );                           endwhile;    // Переход к предыдущей/следующей странице.                          twentyfourteen_paging_nav();                 else :                             // Если контент не существует, подключить шаблон "No posts found".                                      get_template_part( 'content', 'none' );                      endif;      ?></div><!-- #content --></section><!-- #primary --><?php get_sidebar( 'content' ); get_sidebar(); get_footer(); ?>

3. Добавление в шаблон категории пользовательского запроса

Выше основного цикла добавляем пользовательский цикл. После закрытия тега </ h1> вставьте следующий код:

<?php  // отображение специального картинки для категории  // определение текущей категории  $currentcat = get_queried_object(); $currentcatname = $currentcat->slug;?>

Этот код определяет текущую отображаемую категорию при помощи get_queried_object() .

Ниже при помощи WP_Query определяются аргументы пользовательского запроса:

<?php    // определение аргументов запроса для специального картинки    $args = array(           'post_type' => 'attachment',    'post_status' => 'inherit',    'category_name' => $currentcatname,  );  $query = new WP_Query( $args );?>

Данный программный код определяет любые вложения в текущей категории, а также в «featured«. Обратите внимание, что из-за метода, при помощи которого WordPress задает статусы вложений, вам надо использовать в виде аргумента ‘post_status’ => ‘inherit’ .

Сейчас ниже добавьте цикл:

<?php    // Цикл while ( $query->have_posts() ) : $query->the_post();  // определение атрибутов для вывода картинки  $imgattr = array(        'alt'   => trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ),    );  ?>// Отображение картинки  <div class="category-image"></div><?php endwhile;  // сброс запроса для выполнения запроса по умолчанию wp_reset_postdata(); ?>

Убедитесь, что вы не пропустили wp_reset_postdata() в конце, иначе основной запрос для архива категории работать не будет.

После этого сохраните шаблон категории и откройте в браузере одну из страниц архивов категории. Она должна выглядеть примерно так, как показано на скриншоте в начале статьи.

Заключение

В данной серии из четырех статей я продемонстрировала пару способов работы с картинками в WordPress . К ним относятся:

  • Регистрация таксономии для использования с вложениями;
  • Создание страницы списка документов при помощи пользовательского шаблона;
  • Создание страницы для выведения галереи картинок заданной категории при помощи пользовательского шаблона;
  • Создание «специального картинки» для каждой категории и его отображение на странице архива категории.

Как видите, в WordPress с картинками и медиафайлами можно без проблем сделать намного больше, чем просто прикрепить их к записи или использовать в виде «специального картинки«. Вы можете легко запросить их так же, как и любые иные типы записей и вывести ссылки на документы или отобразить картинки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *