Как установить миниатюры для рубрик WordPress

Приветствую Вас уважаемые читатели! Сегодняшний материал на блоге будет посвящен добавлению и выводу миниатюр для категорий (рубрик) wordpress. Знаю по собственному опыту,  что при разработки сайта помимо добавления описания к рубрики (как это делать я писал здесь), а также вывода названия текущей рубрики, очень часто приходится добавлять и соответственно  выводить миниатюру (изображение) рубрики. И как это делается я постараюсь пошагово рассказать в данной публикации, так что никуда не уходите будет интересно. Итак приступим.

Добавление миниатюр к рубрикам wordpress!

Как я уже сказал выше материал будет подаваться в виде инструкции в которой будут описываться все шаги добавления изображения к категории. И первым шагом у нас будет установка специального плагина для расширения функциональности wordpress:

Шаг 1 — установка плагина Category Thumbnails.  Надеюсь мне не нужно объяснять вам как устанавливают плагины вордпресс. Если вы этого не знаете гугл вам в помощь, материала на эту тему полно в сети, об этом наверное только ленивый не писал, уже все «гуру вордпреса» до дыр списали рунет этой темой.

setup_plugin

Данный плагин, как вы наверняка догадались из его названия, добавляет возможность задания для категории миниатюры, которую мы сможем вывести в нашем шаблоне.

Шаг 2 — Добавление специальной функции в functions.php. После установки плагина скорей всего  у вас в верхней части окна появится предупреждения о том, что ваша тема не поддерживает миниатюры рубрики.

warning

И что для того чтобы всё корректно работало нужно добавить специальную функцию в  файл functions.php вашей темы. Собственно говоря так и поступим. Идем в файлы вашей темы (wp-content/themes/имя_папки_темы), открываем файл functions.php и где-то внизу, перед закрывающим тегом php ( ?>)  вставляем следующий код:

add_theme_support('category-thumbnails');

Данный код добавляет поддержку миниатюр рубрик для вашей темы (шаблона) вордпресс.

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

Для этого вам нужно опять же в файле functions.php вашей темы прописать следующий код:

add_image_size($name, $width, $height,  $crop);

где:

$name —  название устанавливаемого размера;
$width – ширина регистрируемой миниатюры;
$height – высота регистрируемой миниатюры;
$crop – тип кадрирования изображения. Сюда передается логический оператор true или false. Если будет передано true: миниатюра создают строго по указанным размерам вся что не попадает в данное соотношение сторон обрезается.

Если будет передано false: миниатюра кадрируется по одной из подходящих сторон, если соотношения сторон загружаемой картинки не соответствует указанным параметром ширины и высоты, один из параметров игнорируется, поэтому миниатюра чаще всего не будет на 100% соответствовать указанным размерам.

Я обычно применяю в качестве последнего параметра true, чтобы миниатюра точно соответствовала заданным мною параметрам, пускай даже если побочный эффект этого — обрезка лишний части изображения.

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

add_image_size('img_cat', 230, 200,  true);;

Соответственно не зависимо какое по размеру изображению я загружу в шаблоне будет показываться картинка с вышеуказанными параметрами. Надеюсь с этим понятно, идем дальше.

Шаг 4 — Загружаем изображение для рубрики. Идем в админку и необходимой нам рубрике назначаем миниатюру (соответствующая кнопка появится после установки плагина Category Thumbnails), то есть загружаем изображение в медиабиблиотеку.

add_img_cat

Ну и не забываем обновлять рубрику.

Шаг 5 — Вывод миниатюры рубрики в шаблоне. Это наверное самый сложный шаг, который необходимо выполнить. Итак, снова идем в папку с нашей темой и выискиваем файл category.php.В одной из предыдущих статей мы уже работали с данным файлом, мы уже здесь выводили название и описание рубрики. По такой же аналогии нам нужно вывести и изображение категории. Здесь нужно нам написать буквально несколько строк кода, делаем все поэтапно:
— узнаем идентификатор текущей рубрики:

$catID = get_query_var('cat'); ; 

Не буде особо объяснять что означает вышеуказанный код, так как я уже неоднократно писал об этом в своих предыдущих  статьях (к примеру здесь).

— получаем данные о миниатюре назначенной для текущей категории:

$img_info = get_the_category_data($catID);

В переменную $img_info попадает вся информация об изображении, которое мы загрузили для нашей категории. Функция  get_the_category_data() в качестве параметра принимает идентификатор текущей рубрики, который мы получили немного выше ($catID).

— выводим миниатюру категории:

echo  wp_get_attachment_image($img_info->id, 'img_cat')

Здесь используя стандартную вордпресовскую функцию мы выводим изображение исходя из переданных параметров функции, а именно: $img_info→id —  идентификатор изображения, который мы получаем благодаря информации полученной ранее об картинке рубрики. И вторым параметром является название зарегистрированного ранее размера (см. Шаг 3) ‘img_cat‘. Надеюсь здесь все понятно.

Итоговый код, который вам нужно будет вставить в ваш файл category.php выглядит так:

<?php                     
   $catID = get_query_var('cat'); 
   $img_info = get_the_category_data($catID); 
   echo  wp_get_attachment_image($img_info->id, 'img_cat');
 ?>

После этого сохраняем все изменения, идем на страницу категорий сайта и смотрим на результат, у меня на тестовом сайте это выглядит так:

result

То есть, как видите, изображения выводится, никаких ошибок нет.

Далее можете уже самостоятельно стилизовать выводимое изображения например, выровнять по левому краю, дать рамку, тень и прочие красоты, думаю вы знаете как это сделать.

result_style

На сегодня у меня всё. Как всегда надеюсь данный материал вам был полезен и теперь вы знаете как назначать и выводить миниатюры для рубрик в CMS WordPress. Всего  доброго!!!