В WordPress есть замечательная функция миниатюр к записям, которая была добавлена в версии 2.9. Эта функция позволяет добавлять вам собственное изображение в виде миниатюры, которая и «представляет» пользователям запись в блоге и она, эта фича, стала стандартом для разработчиков тем. Однако часто новоиспеченные блоггеры забывают указывать изображение для миниатюры, что рушит внешний вид шаблона. Во-вторых, блог выглядит немного «непрофессионально» с «поломанными» изображениями или пустым пространством на главной странице, где должны были бы быть миниатюрки. Считается, что дизайнеры тем и разработчики должны будут создать новый стандарт добавления дефолтных резервных изображений для записей в WordPress в свои шаблоны. Популярные фреймворки, такие как например Genesis, уже встроили такую функцию, когда пользователю не нужно указывать изображение для поста — в этом случае первое вложенное в запись изображение будет использовано в качестве миниатюры. В этой статье мы покажем два различных способа добавления дефолтных резервных изображений для миниатюры в WordPress.
Чтобы всё, описанное в статье, сработало, вам необходимо, чтобы функция поддержки миниатюр была включена в вашем шаблоне.
Добавляем брендированое изображение в качестве резервного
Часто, при разработке сайта для клиента, у клиента появляется много постов, у которых нет ни единого изображения. Поэтому дизайнерам полезно будет создать корпоративное изображение, которое будет отображаться для записей, у которых нет миниатюр. Для этого нужно открыть файл темы, где вы собираетесь выводить миниатюры (например это могут быть home.php, single.php, loop.php, index.php, archive.php и т.д.) Затем просто вставить следующий код внутри цикла.
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <img src="<?php bloginfo('template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" /> <?php } ?>
Пояснение: Код проверяет, указана ли миниатюра, и если так, то отображает её. Если же миниатюра не указана, то тогда функция отобразит изображение ‘default-image.jpg’ из директории с изображениями в вашей теме.
Решение достаточно простое. Конечно же вы можете расширить его указанием размера миниатюр, класса CSS и прочим.
Добавляем первое изображение поста в качестве резервного
Часто новички в блоггинге добавляют изображения к записям, но либо же забывают указывать миниатюру, либо же просто не знают как это сделать. Разработчикам тем нужно быть готовыми к такому повороту. Решение заключается в том, чтобы использовать первое изображение в записи блога в качестве миниатюры. Для этого открываем файл темы functions.php и добавляем следующий код:
//функция для вызова первого загруженного изображения function main_image() { $files = get_children('post_parent='.get_the_ID().'&post_type=attachment &post_mime_type=image&order=desc'); if($files) : $keys = array_reverse(array_keys($files)); $j=0; $num = $keys[$j]; $image=wp_get_attachment_image($num, 'large', true); $imagepieces = explode('"', $image); $imagepath = $imagepieces[1]; $main=wp_get_attachment_url($num); $template=get_template_directory(); $the_title=get_the_title(); print "<img src='$main' alt='$the_title' class='frame' />"; endif; }
Затем открываем файл темы, где вы выводите миниатюры к записи (например home.php, single.php, loop.php, index.php, archive.php и т.д.) и вставляем следующий код:
<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { echo get_the_post_thumbnail($post->ID); } else { echo main_image(); } ?>
Пояснение: Сначала мы создаем функцию, которая получает первое загруженное в запись изображение для каждой записи. В коде файла нашей темы мы проверяем, есть ли у записи миниатюра. Если она есть, то отображаем её, если же нет — то отображаем первую найденную картинку.
Источник : Snipplr
И это только начало. Вы можете комбинировать оба этих решения, создать брендированые изображения для каждой рубрики и делать прочие интересные вещи.
Если вы — разработчик темы, убедитесь, что такие функции есть у вас в наличии в шаблоне 🙂