В WordPress по умолчанию имя автора сообщения берется из данных пользователя, который создал или опубликовал запись. Однако в ряде случаев возникает задача изменить отображаемое имя автора на другое — например, сделать псевдоним, скрыть реальные данные или вывести имя другого пользователя. В этой статье подробно разберем, как программно изменить имя автора в сообщениях WordPress, не меняя при этом данные самого пользователя, а также рассмотрим полезные плагины для решения подобных задач.
Почему стоит менять имя автора в записях WordPress
Стандартное имя автора — это имя, указанное в профиле пользователя, и оно отражается везде, где выводится автор записи. Но бывают ситуации, когда это неудобно:
- Необходимо выводить псевдонимы или бренды вместо реальных имен;
- Требуется скрыть личные данные авторов;
- Нужно объединить несколько авторов под одним именем;
- Желание разнообразить вывод авторов для улучшения дизайна сайта.
Поэтому умение гибко настраивать имя автора — важный навык для разработчика WordPress.
Как WordPress получает и выводит имя автора
По умолчанию WordPress использует функцию get_the_author() или the_author() для вывода имени автора. Эти функции берут данные из профиля пользователя — поля display_name. При этом, если в шаблоне используется the_author_posts_link(), имя выводится с ссылкой на архив автора.
Чтобы изменить имя автора без правки профиля, можно перехватить вывод с помощью фильтров WordPress, например, the_author или get_the_author_display_name.
Изменение имени автора с помощью фильтра the_author — пример кода
Рассмотрим пример функции, которая заменяет имя автора на псевдоним, заданный в метаполе записи. Если метаполе не задано, выводится стандартное имя.
function wpassist_change_author_name($display_name) {
global $post;
if (!$post) return $display_name;
$pseudo = get_post_meta($post->ID, '_wpassist_author_pseudo', true);
if (!empty($pseudo)) {
return esc_html($pseudo);
}
return $display_name;
}
add_filter('the_author', 'wpassist_change_author_name');
В этом коде мы обращаемся к метаполю _wpassist_author_pseudo, которое можно заполнить в админке или программно при создании записи. Этот подход позволяет хранить альтернативное имя автора именно для конкретной записи.
Как добавить поле псевдонима в админке записи
Чтобы удобно задавать псевдоним, добавим метабокс в редактор записи:
function wpassist_add_author_pseudo_metabox() {
add_meta_box(
'wpassist_author_pseudo',
'Псевдоним автора',
'wpassist_author_pseudo_metabox_html',
'post',
'side'
);
}
add_action('add_meta_boxes', 'wpassist_add_author_pseudo_metabox');
function wpassist_author_pseudo_metabox_html($post) {
$value = get_post_meta($post->ID, '_wpassist_author_pseudo', true);
wp_nonce_field('wpassist_save_author_pseudo', 'wpassist_author_pseudo_nonce');
echo '<input type="text" name="wpassist_author_pseudo" value="'.esc_attr($value).'" style="width:100%;">';
}
function wpassist_save_author_pseudo($post_id) {
if (!isset($_POST['wpassist_author_pseudo_nonce']) || !wp_verify_nonce($_POST['wpassist_author_pseudo_nonce'], 'wpassist_save_author_pseudo')) {
return;
}
if (array_key_exists('wpassist_author_pseudo', $_POST)) {
update_post_meta($post_id, '_wpassist_author_pseudo', sanitize_text_field($_POST['wpassist_author_pseudo']));
}
}
add_action('save_post', 'wpassist_save_author_pseudo');
Теперь в редакторе у каждой записи можно указать псевдоним автора, который будет отображаться на сайте.
Изменение имени автора через фильтр get_the_author_display_name
Другой способ — использовать фильтр get_the_author_display_name, который применяется при вызове get_the_author(). Пример:
function wpassist_filter_author_display_name($display_name, $user_id) {
// Можно задать правила, например, для конкретных пользователей
if ($user_id == 2) {
return 'Эксперт WPAssist';
}
return $display_name;
}
add_filter('get_the_author_display_name', 'wpassist_filter_author_display_name', 10, 2);
Этот метод удобен для глобальной замены имени автора для конкретного пользователя.
Полезные плагины для управления именем автора
Если хочется обойтись без кода, можно воспользоваться специализированными плагинами:
- Co-Authors Plus — позволяет назначать нескольких авторов к записи и задавать произвольные имена;
- WP Author Box — расширяет информацию об авторе и позволяет кастомизировать вывод;
- Simple Author Box — удобный плагин для создания красивых блоков автора с возможностью менять имя и описание.
Для интеграции с WPAssist можно рекомендовать использовать Co-Authors Plus, который даст гибкость при управлении авторами.
Выводы и рекомендации
Изменение имени автора в WordPress — частая задача, которую можно решить как простым фильтром, так и через метаполя для конкретных записей. Использование фильтра the_author удобно для динамической замены имени на уровне вывода. Метаполя позволяют хранить индивидуальные псевдонимы, что особенно полезно на мультиавторских сайтах.
При необходимости расширенного функционала стоит обратить внимание на плагины, которые интегрируются с вашим сайтом без конфликтов.
Ниже приведена сводка рекомендуемых действий:
- Реализовать фильтр для замены имени автора;
- Добавить метаполе для удобного управления псевдонимами в админке;
- Использовать проверенные плагины для расширенных задач;
- Тестировать изменения на тестовом сайте перед внедрением на продакшен.