В WordPress часто возникает задача изменить вывод метаданных (автор, дата, категории, теги) в записях без редактирования файлов темы напрямую. Это важно для сохранения возможности обновлять тему без потери изменений и для гибкой кастомизации сайта. В этой статье подробно разберём, как реализовать изменение вывода метаданных с помощью плагинов и пользовательского кода, а также рассмотрим примеры для разных случаев.
Почему не стоит изменять тему напрямую
Редактирование файлов темы, таких как single.php, content.php или functions.php, может привести к проблемам при обновлении темы — все изменения будут потеряны. Чтобы избежать этого, существуют более безопасные методы:
- Создание дочерней темы с переопределением шаблонов.
- Использование хуков и фильтров WordPress для изменения вывода.
- Применение плагинов, позволяющих управлять метаданными.
Однако дочерняя тема — не всегда удобный вариант, особенно если изменения касаются только вывода метаданных. Гораздо проще использовать хуки и фильтры.
Использование хуков для изменения вывода метаданных
WordPress предоставляет фильтры, через которые можно изменить содержимое метаданных перед выводом. Рассмотрим на примере фильтра the_date и кастомного вывода даты и автора.
Пример: изменение формата даты и добавление автора
Добавим в файл functions.php или в плагин следующий код:
function wpbono_custom_posted_on() {
$date = get_the_date('d M Y');
$author = get_the_author();
return '<span class="posted-on">Опубликовано: ' . $date . ' автором ' . $author . '</span>';
}
add_filter('the_date', 'wpbono_modify_date_output');
function wpbono_modify_date_output($date) {
// Возвращаем нашу кастомную разметку с датой и автором
return wpbono_custom_posted_on();
}Этот код заменит стандартный вывод даты на более информативный вариант с автором. Аналогично можно использовать фильтр the_author для изменения имени автора.
Плагины для управления метаданными
Если вы предпочитаете использовать готовые решения, на WPShop есть несколько плагинов, которые помогут настроить метаданные без кода. Например, Clearfy Pro позволяет управлять различными аспектами сайта, включая метаданные записей.
Плагин WPRemark также имеет функции для кастомизации выводов и может использоваться для изменения метаданных.
Как использовать Clearfy Pro для изменения метаданных
1. Установите и активируйте Clearfy Pro.
2. В панели управления плагином перейдите к разделу оптимизации и кастомизации.
3. Включите опции, связанные с отображением даты, автора и других метаданных.
4. Настройте формат вывода по своему усмотрению.
Это решение удобно, если вы хотите быстро изменить метаданные без правки кода.
Кастомизация метаданных через шорткод
Иногда удобно выводить метаданные в любом месте записи с помощью шорткода. Создадим простой шорткод, который выводит дату и автора в нужном формате:
function wpbono_post_meta_shortcode() {
$date = get_the_date('d M Y');
$author = get_the_author();
return '<div class="wpbono-post-meta">Дата публикации: ' . $date . '<br>Автор: ' . $author . '</div>';
}
add_shortcode('wpbono_post_meta', 'wpbono_post_meta_shortcode');Теперь в содержимом записи можно вставить [wpbono_post_meta] и получить аккуратный вывод метаданных.
Удаление метаданных из стандартного вывода
Если тема выводит метаданные автоматически, и вы хотите убрать их, можно воспользоваться фильтрами или CSS. Рассмотрим пример удаления даты из архива:
add_filter('get_the_date', 'wpbono_remove_date_output');
function wpbono_remove_date_output($date) {
if (is_archive()) {
return '';
}
return $date;
}Или через CSS, если метаданные имеют класс, например, .posted-on:
.posted-on {
display: none;
}Такой подход быстро решает проблему без вмешательства в PHP-код.
Заключение по теме изменения метаданных
Изменение вывода метаданных в WordPress без изменения файлов темы — задача, которую можно решить через хуки, фильтры, шорткоды и плагины. Такой подход сохраняет совместимость с обновлениями и упрощает поддержку сайта.
Используйте фильтры the_date, the_author и другие, создавайте собственные шорткоды и при необходимости задействуйте популярные плагины, например, Clearfy Pro или WPRemark.