Как пользователь WordPress, вы, возможно, столкнулись с распространенной проблемой: в некоторых сообщениях в определенных категориях отсутствуют избранные изображения. Когда это происходит, это может привести к непоследовательному и непривлекательному отображению в архиве вашего сайта и на страницах категорий. К счастью, существует простое решение этой проблемы, которое предполагает написание пользовательских сценарий в файле functions.php из вашей темы WordPress. В этой статье я объясню, как шаг за шагом реализовать этот скрипт, гарантируя, что сообщения без отображаемых изображений будут отображать выбранное вами изображение по умолчанию в назначенных категориях.
Понимание кода
Давайте начнем с изучения кода, который обеспечивает эту функциональность. Ниже приведен пользовательский скрипт, написанный на PHP:
// Отображать избранное изображение по умолчанию для определенных категорий function custom_default_category_image($html, $post_id, $post_image_id) { // Добавьте идентификаторы категорий, для которых вы хотите отобразить изображение по умолчанию $category_ids = array(1, 2, 3); // Replace these with your category IDs if (has_post_thumbnail($post_id)) { return $html; } elseif (has_term($category_ids, 'category', $post_id)) { // Заменить 'default-image.jpg ' с указанием пути к вашему изображению по умолчанию в папке wp-content $default_image = '<img src="' . content_url() . '/uploads/default-image.jpg" alt="Default Featured Image" />'; return $default_image; } return $html; } add_filter('post_thumbnail_html', 'custom_default_category_image', 10, 3);
Объяснение кода
- Функция custom_default_category_image($html, $post_id, $post_image_id) является сердцем этого скрипта. Она принимает три параметра:
- $html: HTML-разметка отображаемого изображения для текущего сообщения.
- $post_id: Идентификатор текущей обрабатываемой записи.
- $post_image_id: Идентификатор изображения, прикрепленного к текущему сообщению.
- Внутри функции мы создаем массив с именем $category_ids, куда вы можете добавить идентификаторы категорий, для которых вы хотите отобразить изображение по умолчанию. Например, если вы хотите отобразить изображение по умолчанию для категорий с идентификаторами 1, 2 и 3, вам следует написать: $category_ids = array(1, 2, 3);.
- Условные операторы внутри функции гарантируют, что:
- Если в посте уже есть отображаемое изображение (has_post_thumbnail($post_id)), функция возвращает исходную HTML-разметку для отображаемого изображения (return $html;).
- Если сообщение попадает под одну из указанных категорий (has_term($category_ids, ‘category’, $post_id)), функция возвращает пользовательскую HTML-разметку для изображения по умолчанию.
- URL-адрес изображения по умолчанию устанавливается с помощью функции content_url(), которая указывает на каталог ‘uploads’ в папке ‘wp-content’. Путь к изображению указан как ‘uploads/default-image.jpg’.
- Наконец, функция add_filter() подключает нашу пользовательскую функцию к фильтру ‘post_thumbnail_html’, гарантируя, что она запускается при создании отображаемого изображения.
Внедрение кода
Чтобы внедрить этот код на свой веб-сайт WordPress, выполните следующие действия:
- Откройте панель управления WordPress и перейдите в “Внешний вид” > “Редактор тем”.
- В списке файлов с правой стороны найдите и откройте functions.php файл.
- Скопируйте предоставленный код и вставьте в конце файла functions.php.
- Настройте массив $category_ids с идентификаторами категорий, на которые вы хотите настроить таргетинг.
- Загрузите изображение по умолчанию, которое вы хотите отобразить, в папку “uploads” внутри каталога “wp-content” и замените ‘uploads/default-image.jpg’ правильным путем.
- Нажмите кнопку “Обновить файл”, чтобы сохранить изменения.
Заключение
Внедрив этот простой пользовательский скрипт в файл functions.php вашей темы WordPress вы можете гарантировать, что в посте в определенных категориях всегда отображается изображение по умолчанию, когда конкретное изображение не задано. Это повышает общую согласованность и визуальную привлекательность вашего сайта, делая его более привлекательным для посетителей. Предоставленный код легко настраивается и может быть расширен в соответствии с вашими конкретными потребностями, предлагая ценное решение проблемы с изображением по умолчанию в категориях WordPress.