В WordPress по умолчанию вывод информации об авторе поста осуществляется с помощью стандартных функций и шаблонных тегов, таких как the_author() и get_the_author_meta(). Однако часто возникает необходимость кастомизировать этот вывод без использования дополнительных плагинов. Например, нужно изменить формат отображения имени автора, добавить ссылку на его страницу или вывести дополнительные данные из профиля пользователя.
Почему стоит менять вывод автора без плагинов
Использование плагинов для изменения вывода автора может создавать лишнюю нагрузку на сайт и увеличивать вероятность конфликтов с другими расширениями. Кроме того, если задача простая и специфичная, гораздо эффективнее написать собственный код, который точно решит требуемую задачу и будет легко поддерживаться.
В этом руководстве мы рассмотрим, как самостоятельно изменить вывод автора в шаблонах темы WordPress и расширить информацию об авторе с помощью стандартных функций и пользовательских полей.
Использование функций темы для изменения вывода автора
Самый простой способ изменить вывод имени автора — переопределить вызовы функции the_author() в файлах темы. Но чаще лучше использовать фильтры и хуки WordPress, чтобы обеспечить гибкость и избежать прямого редактирования файлов шаблона.
Фильтр the_author для кастомизации имени автора
Фильтр the_author позволяет перехватывать и изменять имя автора перед выводом. Например, добавим к имени автора префикс «Автор:» и ссылку на страницу профиля:
function wptemy_modify_author_name($author_name) {
$author_id = get_the_author_meta('ID');
$author_url = get_author_posts_url($author_id);
return '<a href="' . esc_url($author_url) . '">Автор: ' . esc_html($author_name) . '</a>';
}
add_filter('the_author', 'wptemy_modify_author_name');Этот код добавляет ссылку на архив автора и префикс «Автор:». Подключите его в файл functions.php вашей активной темы.
Вывод дополнительных данных автора из пользовательских полей
Если в профиле пользователя добавлены дополнительные данные (например, должность, соцсети), их можно вывести рядом с именем. Предположим, что поле «position» хранится в пользовательских метаданных:
function wptemy_author_with_position() {
$author_id = get_the_author_meta('ID');
$name = get_the_author();
$position = get_user_meta($author_id, 'position', true);
if ($position) {
return esc_html($name) . ', ' . esc_html($position);
}
return esc_html($name);
}В шаблоне замените вызов the_author() на echo wptemy_author_with_position(); чтобы вывести имя и должность.
Как добавить вывод автора в нужном месте темы
Для вывода автора в произвольном месте шаблона используйте следующий код:
<div class="wptemy-author-info">
<h4>Автор статьи:</h4>
<p><?php echo wptemy_author_with_position(); ?></p>
</div>Вы можете стилизовать блок через CSS, чтобы он гармонично вписывался в дизайн сайта.
Практические рекомендации по работе с выводом автора
1. Используйте функции WordPress для получения данных автора — get_the_author_meta(), get_user_meta(), get_author_posts_url(). Это обеспечит совместимость и безопасность.
2. Для изменения стандартного вывода применяйте фильтры (the_author, get_the_author_display_name и другие).
3. Если нужно добавить сложный функционал (например, рейтинг автора или отзывы), рассмотрите возможность использования специализированных плагинов или собственного расширения.
4. Не редактируйте напрямую файлы ядра WordPress, изменения делайте только в functions.php или дочерней теме.
Пример: расширенный вывод профиля автора с ссылками на соцсети
Рассмотрим, как вывести имя автора, должность и иконки соцсетей, если они добавлены в профиль через пользовательские поля:
function wptemy_author_full_profile() {
$author_id = get_the_author_meta('ID');
$name = get_the_author();
$position = get_user_meta($author_id, 'position', true);
$twitter = get_user_meta($author_id, 'twitter', true);
$facebook = get_user_meta($author_id, 'facebook', true);
$output = '<div class="wptemy-author-profile">';
$output .= '<h3>' . esc_html($name) . '</h3>';
if ($position) {
$output .= '<p>' . esc_html($position) . '</p>';
}
if ($twitter || $facebook) {
$output .= '<p>Соцсети: ';
if ($twitter) {
$output .= '<a href="https://twitter.com/' . esc_attr($twitter) . '" target="_blank">Twitter</a> ';
}
if ($facebook) {
$output .= '<a href="https://facebook.com/' . esc_attr($facebook) . '" target="_blank">Facebook</a>';
}
$output .= '</p>';
}
$output .= '</div>';
return $output;
}В шаблоне вызовите echo wptemy_author_full_profile(); для вывода расширенного профиля автора. Для добавления полей position, twitter, facebook используйте плагин Advanced Custom Fields или добавьте их вручную в профиль пользователя через хук show_user_profile.
Использование плагина WPRemark для отзывов об авторе
Если вы хотите дополнительно собирать отзывы о конкретных авторах, обратите внимание на плагин WPRemark. Он позволяет интегрировать систему отзывов и оценок, а также выводить их рядом с информацией об авторе. Это повышает доверие пользователей и улучшает взаимодействие.
Подключение WPRemark к профилю автора можно сделать через виджеты или шорткоды, интегрируя отзывы в нужные части шаблона.
Заключение
Изменение вывода автора в WordPress без плагинов — это вопрос грамотного использования фильтров, хуков и шаблонных тегов. Такой подход позволяет гибко адаптировать информацию под задачи конкретного сайта, сохраняя лёгкость и производительность. В статье мы рассмотрели способы кастомизации имени, добавления пользовательских данных и расширенного профиля, а также коснулись полезных плагинов для отзывов, которые могут дополнить функционал.