Метаданные в WordPress играют важную роль для SEO, организации контента и взаимодействия с пользователями. Постоянное обновление и корректировка этих данных вручную — трудоемкий процесс, особенно на больших сайтах. В этой статье разберем, как автоматизировать обновление метаданных в WordPress с помощью кода и плагинов, а также приведем примеры практических решений.
Что такое метаданные в WordPress и зачем их обновлять автоматически
Метаданные — это дополнительная информация, связанная с постами, страницами, пользователями и другими объектами WordPress. Примеры метаданных: custom fields, SEO-теги, дата последнего обновления, рейтинги, теги и категории. Обновление метаданных позволяет поддерживать актуальность контента, улучшать SEO и пользовательский опыт.
Ручное обновление метаданных неудобно и подвержено ошибкам. Автоматизация помогает:
- Обновлять дату последнего изменения автоматически при редактировании поста.
- Генерировать и обновлять SEO-описания и ключевые слова по шаблонам.
- Автоматически добавлять или изменять пользовательские поля на основе условий.
- Обновлять рейтинги, просмотры и другую динамическую информацию.
Теперь рассмотрим конкретные способы реализации.
Использование хуков WordPress для автоматического обновления метаданных
Основной инструмент — хуки save_post и updated_post_meta. С их помощью можно выполнять код при сохранении или обновлении записи.
Пример функции, которая автоматически обновляет метаданные «Дата последнего обновления» при сохранении поста:
function wpeditor_update_last_modified_meta($post_id) {
if (wp_is_post_revision($post_id)) {
return; // Игнорируем ревизии
}
update_post_meta($post_id, '_wpeditor_last_modified', current_time('mysql'));
}
add_action('save_post', 'wpeditor_update_last_modified_meta');
Эта функция добавляет или обновляет метаполе _wpeditor_last_modified с текущей датой и временем. Позволяет использовать эти данные в шаблонах или для SEO.
Автоматическое обновление SEO метаданных с помощью шаблонов
Для SEO важно, чтобы description и keywords соответствовали содержимому поста. Можно использовать плагин Clearfy Pro с функцией автоматической генерации метаданных или написать свою функцию.
Пример автоматического создания description из первых 160 символов контента:
function wpeditor_auto_generate_seo_description($post_id) {
if (wp_is_post_revision($post_id)) {
return;
}
$post = get_post($post_id);
if (!$post) {
return;
}
$description = wp_trim_words(strip_tags($post->post_content), 30, '...');
update_post_meta($post_id, '_yoast_wpseo_metadesc', $description);
}
add_action('save_post', 'wpeditor_auto_generate_seo_description');
В данном примере мы обновляем метаописание для плагина Yoast SEO, которое хранится в _yoast_wpseo_metadesc. Аналогично можно сделать для других SEO плагинов.
Плагины для автоматизации обновления метаданных
Если вы не хотите писать код, можно использовать готовые плагины:
- Clearfy Pro — расширяет возможности оптимизации и управления метаданными, поддерживает генерацию description, автоматическое добавление schema markup. Подробнее на официальной странице.
- WP Meta SEO — позволяет массово редактировать метаданные, автоматизировать title и description по шаблонам.
- Yoast SEO — имеет базовую автоматизацию, можно расширять с помощью фильтров и хуков.
Использование плагинов поможет быстро настроить автоматизацию без глубокого погружения в код.
Автоматическое обновление пользовательских полей с условием
Часто нужно обновлять метаданные не просто при сохранении, а при выполнении определенных условий. Например, менять статус, добавлять метки, если в контенте есть определенные слова.
Пример: автоматическое добавление пользовательского поля special_offer со значением yes, если в тексте есть слово «скидка».
function wpeditor_check_special_offer($post_id) {
if (wp_is_post_revision($post_id)) {
return;
}
$post = get_post($post_id);
if (!$post) {
return;
}
if (stripos($post->post_content, 'скидка') !== false) {
update_post_meta($post_id, 'special_offer', 'yes');
} else {
delete_post_meta($post_id, 'special_offer');
}
}
add_action('save_post', 'wpeditor_check_special_offer');
Такой подход позволяет динамически управлять метаданными, расширяя функционал сайта.
Автоматизация обновления метаданных для пользовательских типов записей и таксономий
Если вы используете кастомные типы записей (custom post types), то автоматизация метаданных там ничем не отличается от стандартных записей. Главное — правильно указать тип записи в функции и фильтрах.
Например, для типа записи product автоматическое обновление мета-цены:
function wpeditor_update_product_price_meta($post_id) {
if (get_post_type($post_id) !== 'product' || wp_is_post_revision($post_id)) {
return;
}
$price = get_post_meta($post_id, 'price', true);
if (!$price) {
update_post_meta($post_id, 'price', 0);
}
}
add_action('save_post', 'wpeditor_update_product_price_meta');
Для таксономий можно использовать хуки created_{$taxonomy} и edited_{$taxonomy} для обновления метаданных терминов.
Резюме и рекомендации
Автоматизация обновления метаданных в WordPress — мощный инструмент для повышения эффективности управления сайтом. Используйте хуки save_post, фильтры и функции update_post_meta, чтобы:
- Обновлять даты, SEO-описания и ключевые слова по шаблонам.
- Добавлять пользовательские поля на основе содержимого.
- Работать с кастомными типами записей и таксономиями.
При необходимости используйте готовые плагины как Clearfy Pro с поддержкой автоматизации. Это существенно упростит настройку и расширит функционал.
Приведенные в статье примеры кода легко адаптируются под конкретные задачи и помогут сэкономить время на рутинных операциях.