Можно ли установить изображение по умолчанию для категории?

8 дек. 2010 г., 00:33:26
Просмотры: 41K
Голосов: 11

Я настраиваю сайт с темой, которая использует функцию "изображения записи" (featured image) WordPress. Поскольку мои конечные пользователи не очень хорошо разбираются в технических вопросах, я хотел бы настроить систему так, чтобы категории имели изображение записи по умолчанию, которое автоматически назначалось бы посту. В случае, если к посту присвоено несколько категорий, система должна использовать изображение из первой категории.

Существует ли готовый плагин или способ реализовать это программно?

3
Комментарии

Используйте этот плагин: http://wordpress.org/extend/plugins/categories-images/ Он работает для категорий и любых пользовательских таксономий. Вы можете найти больше информации о плагине, инструкции по использованию и множество примеров в документации.

Muhammad Muhammad
29 мар. 2015 г. 00:18:32

Спустя 2 года появился плагин для WordPress, который делает это. Ознакомьтесь с "Featured Images for Categories" https://wordpress.org/plugins/featured-images-for-categories/

User User
22 янв. 2015 г. 23:51:45

Есть также http://wordpress.org/extend/plugins/dirtysuds-category-thumbnail/

User User
19 мар. 2011 г. 00:43:42
Все ответы на вопрос 5
4
13

В вашем шаблоне, где выводится миниатюра записи: <?php the_post_thumbnail( 'thumbnail' ); ?>, вы можете сделать её вывод условным — только если миниатюра установлена, а в противном случае использовать изображение по умолчанию.

Один из способов это реализовать — разместить все изображения по умолчанию в определённой директории и назвать их в соответствии с категориями, например, news.jpg и reviews.jpg. Вместо использования <?php the_post_thumbnail( 'thumbnail' ); ?> для вывода миниатюры можно применить следующий код:

<?php 
   if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { 
      the_post_thumbnail('thumbnail');
   } else { ?>
      <img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> <?php }
   endif;
} ?>

В этом примере, если запись относится к категории "news" и автор не установил миниатюру, будет использовано изображение по умолчанию, расположенное по адресу http://www.yoursite/whatever/directory/news.jpg.

8 дек. 2010 г. 01:01:19
Комментарии

Я делаю точно так же. +1

epaps epaps
7 февр. 2011 г. 02:08:49

что произойдет, если пост принадлежит к нескольким категориям?

Eray Eray
20 мар. 2011 г. 02:06:24

Хороший вопрос. get_the_category() вернет только одну категорию, и я не помню, как она решает, какую именно.

matt matt
20 мар. 2011 г. 05:52:45

get_the_category() получает все категории в виде массива, но вам понадобится небольшая хитрость. http://www.studiograsshopper.ch/code-snippets/category-description-with-multiple-categories-and-get_the_category/

Eray Eray
24 мар. 2011 г. 00:54:51
0

Более чистый способ сделать то же самое ;)

if ( ( function_exists( 'has_post_thumbnail' ) ) && ( has_post_thumbnail() ) ) : 
    // Если функция миниатюр существует и у записи есть миниатюра
    the_post_thumbnail( 'thumbnail' );
else :
    // Иначе выводим изображение из категории
    ?><img src="whatever/directory/<?php 
        $category = get_the_category(); echo $category[0]->cat_name; 
        ?>.jpg" /><?php
endif;
13 июл. 2011 г. 14:42:13
0
<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

<?php the_post_thumbnail('thumbnail'); ?>

<?php else :?>

<img src="<?php bloginfo('template_directory'); ?>/ваша директория с изображениями в папке темы/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> 

<?php endif;?>
25 июн. 2012 г. 13:52:49
1

У меня возникли проблемы с названиями категорий, содержащими пробелы. Я немного изменил приведённый выше код, чтобы он соответствовал моим потребностям.

<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

<?php the_post_thumbnail('thumbnail'); ?>

<?php else :?>

<img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_ID; ?>.jpg" /> 

<?php endif;?>

По сути, просто замените

echo $category[0]->cat_name;

на

echo $category[0]->cat_ID;

Это позволит использовать изображения вида 16.jpg или 3.jpg, в зависимости от номера вашей категории.

13 июл. 2012 г. 19:40:05
Комментарии

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

Damien Damien
13 июл. 2012 г. 20:13:19
0

Я успешно использовал плагин Taxonomy Images от Michael Fields — он добавляет функции управления на страницу редактирования категорий/таксономий, так что изображения записей работают для таксономий так же, как и для записей/страниц. Включает все необходимые функции для работы с вашей темой.

скриншот админки пользовательской таксономии

2 окт. 2012 г. 02:53:31