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

Сегодня хочу показать вам пошаговую инструкцию установки миниатюры для рубрик WordPress. Сразу наверное стоить оговориться, это не стандартное решение на базе плагина "Taxonomy Images II" или "Category Images II" которые так хорошо описанные в сети интернет и которые уже больше двух лет как устарели.

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

Я предлагаю задать миниатюру для рубрики через произвольные поля WordPress для категорий, таксономий и меток. Создавать поля для wordpress картинка рубрики мы будем на базе плагина Advanced Custom Fields.

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

Пошаговая настройка: wordpress картинка рубрики

1) Нужно установить к себе на сайт плагин ACF, вот ссылка на него: Получить ссылку на (ACF)

wordpress картинка рубрики

2) После активации плагина у вас появится в левом сайдбаре админки вот такая вкладка:miniatyra-wp

3) Заходим в нее и нажимаем "добавить новую"

miniatyra-wp-1

 

4) Даем имя для блока "Поля для категории" и нажимаем кнопку "Опубликовать"миниатюры рубрик wordpress

5) Нажимаем вкладку "+ добавить поле"

миниатюры рубрик wordpress

6) и заполняем все поля, таким образом как это я делаю на скине ("Ярлык поля"-"wordpress картинка рубрики", "Имя поля" - "imgcat1", "Тип поля" - "Изображение", "Вернуть значение" - "Ссылка на изображение"):

miniatyra-wp-4

7) Нажимаем кнопку "Обновить" справа в верхуminiatyra-wp-5

8) В блоке местоположение указываем "в первой выпадашке" - "термин таксономии", "во второй" - "равно", "третья" - "Рубрики", как на скриншоте:

wordpress картинка рубрикиМаленькое уточнение, если вы делаете миниатюру не для рубрик / категорий, то нужно указать другое имя вместо "Рубрики". Например метки или имя вашей таксономии.

9) Повторяем п.7, нам нужно одновить информацию.

10) Мы добавили поле wordpress картинка рубрики для нашего сайта, и теперь можем его заполнить во вкладке рубрики. (Если это таксономия или метка то в соответствующей вкладке)

11) Создаем рубрику или открываем уже созданную:miniatyra-wp-7

12) Заходим в рубрику и там видем вот такую замечательную вкладку "wordpress картинка рубрики" и там же справа можно добавить изображение для категории:wordpress картинка категории

13) После того как мы добавили картинку для рубрики, у нас получился там вот такой блок:wordpress картинка рубрикиНажимаем сохранить изменения в категории.

С админкой сайта мы закончили, но еще нужно настроить код вывода картинки рубрики WP.

Код для отображения миниатюры рубрик wordpress

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

14) Продолжаем нашу пошаговую настройку миниатюры рубрик / таксономий / меток. Для начала выведем картинку категории в текущей рубрике, пожалуй это самая простая задача. Определяем шаблон, обычно это category.php или index.php и закидываем туда вот такой код:

<?php if($imgcat1=get_field("imgcat1",get_category($cat))){?>
<img src="<?php echo $imgcat1;?>"/>
<?php }?>

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

15) Сейчас покажу код, который выведет картинку рубрики wordpress в произвольном месте, например сайдбаре или главной странице. Код привожу полностью рабочий, его достаточно вставить в любое место, кроме цикла ВП 🙂

<?php
$categories = get_categories(array('taxonomy'=>'category','hide_empty'=>false));
if($categories){
foreach($categories as $cat){?>
<div class="cat">
<div class="name"><a href="<?php echo get_category_link($cat->term_id);?>"><?php echo $cat->name;?></a></div>
<?php if($imgcat1=get_field("imgcat1",$cat)){?><div class="img"><img src="<?php echo $imgcat1;?>"/></div><?php }?>
</div>
<?php }?>
<?php }?>

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

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

<?php if($imgcat1=get_field("imgcat1",$cat)){?><div class="img"><img src="<?php echo $imgcat1;?>"/></div><?php }?>

На этом пожалуй все, этих двух кодов вам будет достаточно для того чтоб вывести картинку рубрики WordPress в любом месте, а также в самой категории.

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

Если wordpress картинка категории не появилась на вашем сайте значит вы что то сделали не так. Можно описать проблему в комментариях или в разделе Вопрос / Ответ.

Комментарии к записи «Как установить миниатюры для рубрик WordPress»:
  1. Андрей:

    Здравствуйте, а если в главной рубрики идет вывод дочерних рубрик и нужно вывести миниатюры к ним. Какой код тогда нужно писать? Всё что выше изложено не подходит. Спасибо за ранее.

    • admin:

      Добрый день.
      Это зависит от того какой код выбирает у вас дочерные категории, но в любом случаи для рубрик и вывода миниатюры из АЦФ код:
      <?php $imgcat1=get_field("imgcat1","category_".$cat_id);?>
      будет работать. Где "imgcat1" - это название поля, а $cat_id - это ИД категории

    • Андрей:

      не работает
      у меня вывод рубрик идет

      Может я что не догоняю ))

    • Андрей:

      не могу вывести код в чат
      wp_list_categories('include=92&title_li="' .$src . '"');

    • admin:

      Для wp_list_categories этот код и не будет работать. вам нужно переписать получение подкатегорий и только потом пробовать выводить туда миниатюру.
      Смотрите шаг 15 из последней инструкции, там вот этот кусок кода можно модернизировать $categories = get_categories(array('taxonomy'=>'category','hide_empty'=>false));
      чтобы получать дочерные рубрики но вам нужно разобраться в функции get_categories, добавить туда чтоб она брала дочерние к конкретной категории

    • Андрей:

      Спасибо буду разбираться

  2. Алекс:

    Здравствуйте! Подскажите, как вывести изображение для рубрики в сайдбаре. Что оно отображалось на странице этой рубрики и в записях, которые принадлежат этой рубрике. Сейчас, когда вставляю код из п.15, получаю список всех рубрик и их изображений

    • admin:

      Добрый день.
      Код из п. 14 выведет миниатюру для категории. На странице поста, который относится к рубрике немного сложнее так как у вп можно прикрепить несколько рубрик к одному посту. Придется выбирать из массива первый элемент, иначе будет как вы сказали "список рубрик"

    • Алекс:

      А если у меня нет постов, которые относятся к нескольким рубрикам?

  3. Владислав:

    Добрый день!
    Еще один вопрос: а можно сделать, чтобы в html вставлялся не только сама картинка, путь до нее, а еще и ее атрибуты, например alt или title.

    • admin:

      Добрый день.
      Можно эти значения указать через такие же поля. А можно вместо ссылки на изображение отдавать объект и там уже посмотреть есть alt у картинки или нет. Этот переключатель вы вот тут устанавливали https://help-wp.ru/wp-content/uploads/2015/08/miniatyra-wp-4.jpg

    • Владислав:

      Альты у картинок должны быть при добавлении я прописывал. Я переключаю, ставлю отдавать объект, но картинки перестают отображаться, я так понимаю, необходима еще коррекция кода, а я, честно говоря, не допру как его поменять...

    • admin:

      Да, конечно, пример перестанет работать так как он вместо строки теперь пытается вывести объект. Сделайте print_r($imgcat1); и вы увидите какие значения есть у объекта

  4. Владислав:

    День добрый!
    Вставил Ваш код, только поменял порядок вывода изображения и ссылки на категорию:
    'category','hide_empty'=>false));
    if($categories){
    foreach($categories as $cat){?>

    <img src=""/>
    <a href="term_id);?>">name;?>

    Все отлично работает, но этот код собирает все категории, которые только сущеествуют и если нет картинки просто выводит ссылку. Мне же нужно вывести только подкатегории данной родительской категории. Заранее спасибо за ответ!

    • Владислав:

      Обрезало код при отправке, я вставлял тот, что в п.15

    • admin:

      Добрый день.
      У функции get_categories есть параметр parent, если указать "parent"=>ид нужной категории то выберится список ее под категорий.

    • Владислав:

      Спасибо! Все сразу получилось)

  5. Ильяс:

    Добрый день, вопрос такой, а как вывести изображение определенного размера thumbnail, medium, large ну или свой тип?

    • admin:

      Добрый день.
      В п.6 инструкции выше, нужно выбрать "id изображения" вместо "ссылка на изображение" и потом код будет вот такого плана:

      <?php
      if($imgcat1=get_field("imgcat1",$cat)){
      $image_url=wp_get_attachment_image_src( $imgcat1, 'full'); // или вместо full можно thumbnail, medium, large
      ?>
      <div class="img"><img src="<?php echo $image_url[0];?>"/></div>
      <?php }?>

      Исходя с инструкции выше

  6. Ярослав:

    Здравствуйте, я новичек в разработке. Сделал все как в мануале, но мне нужно вывести миниатюры на странице категорий, (в общем на сайте есть страница "Категории") и нужно чтобы на этой странице были миниатюры-ссылки на каждую категорию

    • admin:

      Добрый день.
      Рубрики и категории ничем не отличаются названия только разные. Разве что вы создали свою таксономию и назвали ее категории? тогда смотрите код для таксономий

  7. Виктор:

    Цикл в пункте 15) не совсем верен, картинка не выводится, вы забыли добавить параметр url, будет так <img src=""/>

    • admin:

      Отлично все работает, только что специально проверил.
      Изображение выводится если вставить код с п.15 и сделать все пошагово.

      Вы видимо не внимательно сделали п.6, когда создавали поле АЦФ видимо не указали чек напротив "Ссылка на изображение" вот и получается что вы работаете с объектом вместо обычной ссылки.

      В общем код рабочий 🙂 я проверил

    • Виктор:

      Не рабочий, я тупо взял ваш код ничего не добавляя, в теге img Он выводит слово "Array" вместо пути к картинке, потому что вы не задали параметр Url для вашего field, поэтому он и не получает URL картинки и выводит массив. prntscr . com/e4q8l3 Допишите пожалуйста, чтобы те кто сталкнется с той же проблемой, знали

    • admin:

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

  8. Андрей:

    А как вывести в цикле 1 изображение для таксономии, сейчас с этим кодом выводит в каждую таксономию сразу все изображения

    • admin:

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

      <?php
      $tax_id="eventtax_3"; // где eventtax это slug вашей таксономии, а 3 это идентификатор конкретной рубрики из таксономии eventtax
      if($imgcat1=get_field("imgcat1",$tax_id)){
      ?>
      <div class="img"><img src="<?php echo $imgcat1;?>"/></div>
      <?php }?>

      Вам осталось получить или посмотреть ид рубрики и название таксономии которую вы создали

  9. Игорь:

    Скажите пожалуйста, как сделать тоже самое только для меток?
    Ни как не получается вывести картинку

    • admin:

      Добрый день. Для метки этот код будет вот таким:

      <?php if($desc_acf=get_field("imgcat1",get_term_by("slug",get_query_var('tag'),"post_tag"))){?><div class="img"><img src="<?php echo $imgcat1;?>"/></div><?php }?>

  10. Княгиня:

    День добрый.
    Не подскажете, в чём дело: при создании поля картинки для рубрики это поле появляется при создании новой рубрики, но в уже созданной его нет. Отчего так и как это лечить?

    • Княгиня:

      Сори, вопрос снимается. Похоже, было достаточно обновить плагин.

  11. Антон:

    Добрый день! Подскажите пожалуйста, как сделать, чтобы выводил определенную рубрику, а то сейчас выводит все рубрики

    • admin:

      Добрый день. Уточните плз. где вы хотите выводить одну рубрику? На главной? Уточните, и я постараюсь вам помочь. Нажав ответить, вы сможете написать в этом комментарии, и не будете плодить новый 🙂

  12. Андрей:

    Сделал все как описано в алгоритме. На главной получилось отобразить список этих рубрик, но не получается вывести картинку в файле archive.php. Вставлял тот код, что вы вставляли "category.php или index.php", только со своим именем поля (cat_pct).

    • admin:

      Добрый день. Если у вас есть файл category.php в теме, то для вывода рубрик будет использован именно он, вместо index.php или archive.php

      Посмотрите возможно проблема при получении идентификатора категории, или это вообще не категория

    • Андрей:

      Файла category.php в теме нет. Вот все, что у меня есть в теме (-url-). Проверил код и увидел что, условие if($cat_pct=get_field("cat_pct",get_category($cat))) не выполняется. Пробывал просто выводить echo "555", а ничего не получилось. Может я не туда вставлял? (-url-)

    • admin:

      Если вы действительно выводите рубрики, попробуйте вот такой вариант:

      <?php
      if(is_category()){
      $thisCat=get_category(get_query_var('cat'),false);
      if($imgcat1=get_field("imgcat1",$thisCat->term_id)){?>
      <img src="<?php echo $imgcat1;?>"/>
      <?php } }?>

    • Андрей:

      Ваш код не подошел. Нашел другое решение. Возможно костыль, но работает)
      'category','hide_empty'=>false,'include'=>$category[0]->term_id));
      if($categories){
      foreach($categories as $cat){?>
      <img src=""/>

    • admin:

      Но это ж выборка категорий. и 100% костыль 🙁
      И если у вас есть $category[0]->term_id то почему бы его не использовать вместо переменной идентификатора. Вы ж понимаете что делаете поиск категории включая только одну с таким вот идентификатором $category[0]->term_id а потом загоните ее в цикл и опять получаете ее идентификатор 🙂

  13. Артур:

    Спасибо, полезная информация, вроде все получилось, но возник вопрос, можно ли сделать вывод миниатюры только одной рубрики на странице поста (конечно же пост принадлежит данной рубрике)?

    • admin:

      Добрый день.
      Конечно можно, только вот зачем вам на странице поста миниатюра из категории 🙂 ?
      Надо получить массив всех категорий взять ИД первой и вывести для нее миниатюру

  14. Николай:

    Здравствуйте. У меня проблема с выводом картинок из произвольных рубрик. Вставляю ваш код в габлон category.php, но ничего не выводится. Подскажите, в чем может быть проблема?

    • admin:

      Добрый день.
      Можете показать сайт.
      Возможно вы дали неправильное имя полю, не такое как у меня "imgcat1" тогда везде нужно писать по другом ваш вариант. Или например забыли установить чекбокс "Вернуть значение" - "Ссылка на изображение"
      по умолчанию стоит ИД.

  15. Илья:

    Здравствуйте. У меня на сайте wordpress картинка рубрики отсутствует. Сделал вроде все как вы описали но добавить миниатюру не могу. Подскажите что мне делать?

Сделать заказ
Онлайн помощь по WordPress