Как задать изображение миниатюры по умолчанию для новых записей WordPress
Опубликовано: 01.09.2018
В этом небольшом руководстве я продемонстрирую вам способ создания картинки миниатюры по умолчанию для всех новых постов в вашем блоге или на сайте. Многие руководства описывают, как проверить наличие картинки в посте и как задать ее, если такой картинки нет. А в этот раз мы поговорим о том, как избежать случайного сохранения нового поста без картинки для предварительного просмотра.
Обычный способ установки картинки для постов по умолчанию
Как уже было сказано выше, обычно в руководствах такого рода предлагается использовать связку If ... Else в теме для того, чтобы отображать картинку для постов по умолчанию. Вот пример того, как это выглядит в коде:
Уроки WordPress - Как создать запись (WordPress для чайников)
if (has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="' . get_bloginfo('template_directory') . '/images/thumb-default.png' . '" width="100" height="100" alt="thumbnail" />'; }
Такая простая связка работает, но потребует от вас модификации стороннего плагина, у которого по умолчанию нет возможности для работы с картинками в постах. Вот почему в этом пользовательском руководстве я предлагаю вам способ, как задать значение картинки для постов по умолчанию прямо в базе данных сайта.
Как изменить слайдер в теме (шаблоне) WordPress
Шаг 1. Устанавливаем значение Thumbnail ID
Первое, что вам надо сделать — это задать значение ID для загружаемой картинки, которая будет крепиться ко всем новым постам на сайте. Сделать это можно, перейдя в медиа-библиотеку сайта ( Media Library ), выбрав там вашу тему оформления и нужную вам картинку, а затем скопировав значение ID для этой картинки.
На скриншоте вы видите, что значение ID берется из адресной строки с параметром attachment_id=
Шаг 2. Задаем функцию
Чтобы установить значение картинки по умолчанию для новых постов, вы можете добавить следующий сниппет в файл functions.php в папке с вашей выбранной темой:
add_action( 'save_post', 'wptuts_save_thumbnail' ); function wptuts_save_thumbnail( $post_id ) { // Get Thumbnail $post_thumbnail = get_post_meta( $post_id, $key = '_thumbnail_id', $single = true ); // Verify that post is not a revision if ( !wp_is_post_revision( $post_id ) ) { // Check if Thumbnail exists if ( empty( $post_thumbnail ) ) { // Add thumbnail to post update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '233' ); } } }Мы используем save_post для запуска функции в новом добавленном посте на вашем сайте. Как только мы связали действие с добавлением нового поста, мы используем параметр get_post_meta для того, чтобы задать значение для базы данных, указав ID картинки и ID поста .
Следующий шаг — это использование функции wp_is_post_revision для проверки того, является ли сохраненный пост новой версией существующего поста или это — новый пост, которого раньше не было. Если пост представляет собой версию обновленной существовавшей публикации, тогда мы делаем исключение для выполнения оставшейся части новой функции.
С помощью параметра If мы также проверяем, есть ли какая-то мета-информация о существовании картинки для нового поста. Если таких данных нет, то мы применяем функцию add_post_meta для добавления значения ID картинки по умолчанию в наш последний добавленный на сайте пост.
Вот и все! При сохранении статьи в черновиках на сайте будет сохраняться значение картинки по умолчанию для нового поста, и мы сможем использовать эту картинку по умолчанию в плагинах и виджетах, где требуется наличие иллюстрации для предварительного просмотра. Если вы разрабатываете тему для сайта, вы также можете использовать указанный метод и заменить $meta_value картинкой из вашей папки с разрабатываемой темой.