В WordPress авторские метаданные — это важная часть информации, которая отображается в записях и страницах, указывая на автора контента. Однако бывают ситуации, когда необходимо удалить или изменить эти данные по разным причинам: смена автора, анонимизация публикаций, скрытие личной информации или оптимизация отображения сайта.
Что такое авторские метаданные в WordPress и где они хранятся
Авторские метаданные — это набор данных, которые содержат информацию об авторе записи. В базовом варианте это имя пользователя, имя и фамилия, никнейм, e-mail и URL сайта. В WordPress эти данные связаны с объектом пользователя и хранятся в таблицах wp_users и wp_usermeta.
Кроме того, тема или плагины могут добавлять собственные поля с информацией об авторе, например, биографию, аватар, социальные ссылки.
Для вывода авторских данных в шаблонах чаще всего используются функции the_author(), get_the_author_meta() и другие.
Почему может понадобиться удалить или изменить авторские метаданные
Основные причины:
- Смена автора записи. Например, когда контент переходит другому пользователю.
- Анонимизация. Чтобы скрыть имя автора по соображениям конфиденциальности.
- Оптимизация SEO. Часто избыточные данные об авторе мешают SEO или дизайну.
- Удаление лишних данных. Если пользователь удалён, а записи остались с «мусорными» метаданными.
- Кастомизация внешнего вида. Чтобы вывести свои данные или убрать стандартные.
Как программно удалить отображение авторских метаданных в теме WordPress
Если ваша задача — просто убрать вывод имени автора из записей, самый простой способ — изменить шаблон темы. Например, найти вызов the_author() или похожие и удалить или закомментировать их.
Однако, если вы хотите более гибко управлять выводом, можно использовать фильтры и хуки. Рассмотрим пример функции wporg_remove_author_meta(), которая полностью удалит отображение автора из контента.
function wporg_remove_author_meta($content) {
if (is_single()) {
// Удаляем блок с автором, если он есть
$content = preg_replace('/<div class="author-info">.*?<\/div>/s', '', $content);
}
return $content;
}
add_filter('the_content', 'wporg_remove_author_meta');
Этот пример — базовый и зависит от структуры вашей темы. Можно также отключить вывод автора в метаинформации, удалив соответствующие вызовы из файлов шаблонов, например, single.php, content.php.
Как изменить авторские данные для записей через код
Если нужно массово изменить автора для записей, есть удобный способ с помощью функции wp_update_post(). Например, чтобы сменить автора всех записей с ID 1 на ID 2:
function wporg_change_author_for_all_posts($old_author_id, $new_author_id) {
$args = [
'author' => $old_author_id,
'posts_per_page' => -1,
'post_type' => 'post',
'fields' => 'ids'
];
$posts = get_posts($args);
foreach ($posts as $post_id) {
wp_update_post([
'ID' => $post_id,
'post_author' => $new_author_id
]);
}
}
// Пример вызова
// wporg_change_author_for_all_posts(1, 2);
Этот код удобно запускать один раз, например, через функцию в файле functions.php или через плагин-снппет. После выполнения вызов можно закомментировать.
Удаление метаданных автора из REST API WordPress
Если вы используете REST API и хотите убрать информацию об авторе из ответа, можно воспользоваться фильтрами REST API. Вот пример отключения поля «author» в ответах:
function wporg_remove_author_from_rest($response, $post, $request) {
if (isset($response->data['author'])) {
unset($response->data['author']);
}
if (isset($response->data['author_name'])) {
unset($response->data['author_name']);
}
return $response;
}
add_filter('rest_prepare_post', 'wporg_remove_author_from_rest', 10, 3);
Такой подход полезен, если вы хотите скрыть автора для внешних приложений и сервисов.
Использование плагинов для управления авторскими метаданными
Если не хотите писать код, есть ряд полезных плагинов:
- Co-Authors Plus — позволяет назначать нескольких авторов, а также менять отображение.
- WP Author Box — расширяет возможности вывода информации об авторе.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wporg.ru&utm_medium=article&utm_campaign=kak-udalit-ili-izmenit-avtorskie-metadannye-v-wordpress) — оптимизирует работу сайта и позволяет отключать излишние мета-данные, в том числе авторские.
При использовании плагинов обратите внимание на совместимость с вашей темой и другими плагинами.
Как изменить метаданные пользователя (автора) через код
Иногда нужно не только сменить автора записи, но и изменить данные самого пользователя. Для этого используются функции update_user_meta() и wp_update_user(). Пример смены никнейма и URL сайта:
function wporg_update_author_meta($user_id, $nickname, $url) {
wp_update_user([
'ID' => $user_id,
'user_nicename' => sanitize_title($nickname),
'display_name' => $nickname,
'user_url' => esc_url_raw($url),
]);
update_user_meta($user_id, 'nickname', sanitize_text_field($nickname));
}
// Пример вызова
// wporg_update_author_meta(2, 'Новый Ник', 'https://example.com');
Данный код помогает централизованно обновлять профиль автора.
Советы по безопасности и производительности
При работе с метаданными авторов важно соблюдать несколько правил:
- Резервное копирование базы данных перед массовыми изменениями.
- Использование непостоянных функций для выполнения одноразовых операций.
- Проверка прав пользователя, чтобы не менять чужие данные без разрешения.
- Оптимизация запросов при массовом обновлении, чтобы не перегружать сервер.
Заключение по теме удаления и изменения авторских метаданных в WordPress
Удаление или изменение авторских метаданных — частая задача при кастомизации сайтов на WordPress. При правильном подходе вы можете гибко управлять отображением и данными авторов, улучшая дизайн, безопасность и удобство использования сайта. Используйте как кодовые решения, так и проверенные плагины, чтобы добиться наилучшего результата.