В этой статье разберем, как добавить подписи к постам в WordPress — отдельные тексты, которые будут отображаться под основным содержимым статьи. Это полезно, если нужно указывать дополнительную информацию об авторе, источнике, комментарии редактора или любые другие сведения, которые не уместились в основное тело записи.
Зачем нужны подписи к постам в WordPress
Подписи помогают:
- Предоставлять дополнительную информацию читателю, не загромождая основной текст.
- Указывать авторство или ссылки на источники.
- Добавлять важные примечания, комментарии редактора или контактные данные.
- Повысить доверие и удобство восприятия контента.
Однако WordPress по умолчанию не предлагает отдельного поля для таких подписей. Мы рассмотрим, как добавить эту возможность с помощью пользовательских полей, а также как вывести подписи на сайте автоматически.
Создание пользовательского поля для подписи в WordPress
Самый простой способ добавить подпись — использовать пользовательское поле (custom field) в редакторе поста. Для этого:
- Откройте редактор записи WordPress.
- В правом верхнем меню выберите «Настройки экрана» и убедитесь, что включены «Пользовательские поля».
- Внизу страницы появится метабокс «Пользовательские поля». Добавьте новое поле с именем
journalx_post_signatureи введите текст подписи.
Теперь осталось вывести это поле на сайте под содержимым статьи.
Вывод подписи под постом с помощью хуков
Чтобы автоматически отображать подпись в конце контента, добавим фильтр к функции the_content. В файле functions.php вашей темы или в отдельном плагине добавьте следующий код:
function journalx_add_post_signature($content) {
if (is_singular('post')) {
$signature = get_post_meta(get_the_ID(), 'journalx_post_signature', true);
if ($signature) {
$content .= '<div class="post-signature" style="margin-top:20px; font-style:italic; color:#555;">' . esc_html($signature) . '</div>';
}
}
return $content;
}
add_filter('the_content', 'journalx_add_post_signature');Объяснение кода:
- Проверяем, что это одиночный пост (
is_singular('post')). - Получаем значение пользовательского поля
journalx_post_signature. - Если поле заполнено, добавляем блок с подписью в конец контента.
- Используем
esc_htmlдля безопасности.
Таким образом, подпись будет автоматически выводиться под каждым постом, где задано соответствующее поле.
Использование кастомного метабокса для удобства редактирования
Работать с пользовательскими полями в стандартном метабоксе не всегда удобно. Можно создать собственный метабокс с визуальным редактором или textarea для подписи. Ниже пример добавления метабокса в админке:
function journalx_add_signature_metabox() {
add_meta_box(
'journalx_signature_metabox',
'Подпись к посту',
'journalx_signature_metabox_callback',
'post',
'normal',
'high'
);
}
add_action('add_meta_boxes', 'journalx_add_signature_metabox');
function journalx_signature_metabox_callback($post) {
wp_nonce_field('journalx_save_signature', 'journalx_signature_nonce');
$value = get_post_meta($post->ID, 'journalx_post_signature', true);
echo '<textarea style="width:100%; height:100px;" name="journalx_post_signature">' . esc_textarea($value) . '</textarea>';
}
function journalx_save_signature_meta($post_id) {
if (!isset($_POST['journalx_signature_nonce']) || !wp_verify_nonce($_POST['journalx_signature_nonce'], 'journalx_save_signature')) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (isset($_POST['journalx_post_signature'])) {
update_post_meta($post_id, 'journalx_post_signature', sanitize_textarea_field($_POST['journalx_post_signature']));
}
}
add_action('save_post', 'journalx_save_signature_meta');Этот код добавит удобное поле для подписи с сохранением при обновлении поста.
Примеры использования подписей и стилизация
Подписи можно использовать для разных целей:
- Указание имени автора поста, если он отличается от основного автора сайта.
- Добавление контактной информации или ссылок на соцсети.
- Вставка важных примечаний или юридической информации.
Для стилизации подписи добавьте CSS в файл стилей темы или через кастомайзер:
.post-signature {
font-size: 14px;
font-style: italic;
color: #666;
border-top: 1px solid #ddd;
margin-top: 20px;
padding-top: 10px;
}Это сделает подпись аккуратной и визуально отделит от основного текста.
Использование плагинов для расширенных подписей
Если хочется более функциональных подписей — например, с поддержкой HTML, изображений или автоматическим заполнением, можно использовать плагины:
- Advanced Custom Fields (ACF) — позволяет создавать любые поля, включая визуальные редакторы, и выводить их в шаблонах.
- WP Author Bio — плагин для отображения расширенной информации об авторе, подходит для подписи авторских статей.
- Code Snippets — для удобного добавления и управления собственным кодом.
Например, с ACF можно создать поле «Подпись» с типом «Текст» или «Визуальный редактор», а затем вывести его так:
function journalx_acf_post_signature($content) {
if (is_singular('post') && function_exists('get_field')) {
$signature = get_field('journalx_post_signature');
if ($signature) {
$content .= '<div class="post-signature">' . $signature . '</div>';
}
}
return $content;
}
add_filter('the_content', 'journalx_acf_post_signature');Советы по безопасности и производительности
При работе с пользовательскими полями важно:
- Санитизировать входящие данные при сохранении (используйте
sanitize_textarea_fieldили другие функции в зависимости от типа). - Экранировать вывод (
esc_htmlилиwp_kses_postдля HTML). - Не грузить дополнительные запросы БД без необходимости.
- Использовать проверку nonce для защиты от CSRF при сохранении метаданных.
Это обеспечит надежную и безопасную работу сайта.
Вывод
Создать подписи к постам в WordPress — простая и полезная задача. Используя пользовательские поля и хуки, можно быстро добавить нужный функционал без лишних плагинов. Для расширенных возможностей подходят плагины типа ACF. Главное — уделить внимание удобству редактора и безопасности данных.