ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Решение проблемы с изображением по умолчанию в постах и статьях WordPress

Решение проблемы с изображением по умолчанию в постах и статьях WordPress

Как пользователь 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);

 

Объяснение кода

  1. Функция custom_default_category_image($html, $post_id, $post_image_id) является сердцем этого скрипта. Она принимает три параметра:
    • $html: HTML-разметка отображаемого изображения для текущего сообщения.
    • $post_id: Идентификатор текущей обрабатываемой записи.
    • $post_image_id: Идентификатор изображения, прикрепленного к текущему сообщению.
  2. Внутри функции мы создаем массив с именем $category_ids, куда вы можете добавить идентификаторы категорий, для которых вы хотите отобразить изображение по умолчанию. Например, если вы хотите отобразить изображение по умолчанию для категорий с идентификаторами 1, 2 и 3, вам следует написать: $category_ids = array(1, 2, 3);.
  3. Условные операторы внутри функции гарантируют, что:
    • Если в посте уже есть отображаемое изображение (has_post_thumbnail($post_id)), функция возвращает исходную HTML-разметку для отображаемого изображения (return $html;).
    • Если сообщение попадает под одну из указанных категорий (has_term($category_ids, ‘category’, $post_id)), функция возвращает пользовательскую HTML-разметку для изображения по умолчанию.
  4. URL-адрес изображения по умолчанию устанавливается с помощью функции content_url(), которая указывает на каталог ‘uploads’ в папке ‘wp-content’. Путь к изображению указан как ‘uploads/default-image.jpg’.
  5. Наконец, функция add_filter() подключает нашу пользовательскую функцию к фильтру ‘post_thumbnail_html’, гарантируя, что она запускается при создании отображаемого изображения.

 

Внедрение кода

Чтобы внедрить этот код на свой веб-сайт WordPress, выполните следующие действия:

  1. Откройте панель управления WordPress и перейдите в “Внешний вид” > “Редактор тем”.
  2. В списке файлов с правой стороны найдите и откройте functions.php файл.
  3. Скопируйте предоставленный код и вставьте в конце файла functions.php.
  4. Настройте массив $category_ids с идентификаторами категорий, на которые вы хотите настроить таргетинг.
  5. Загрузите изображение по умолчанию, которое вы хотите отобразить, в папку “uploads” внутри каталога “wp-content” и замените ‘uploads/default-image.jpg’ правильным путем.
  6. Нажмите кнопку “Обновить файл”, чтобы сохранить изменения.

 

Заключение

Внедрив этот простой пользовательский скрипт в файл functions.php вашей темы WordPress вы можете гарантировать, что в посте в определенных категориях всегда отображается изображение по умолчанию, когда конкретное изображение не задано. Это повышает общую согласованность и визуальную привлекательность вашего сайта, делая его более привлекательным для посетителей. Предоставленный код легко настраивается и может быть расширен в соответствии с вашими конкретными потребностями, предлагая ценное решение проблемы с изображением по умолчанию в категориях WordPress.

Exit mobile version