Зачем нужна автоматизация обновлений тем в WordPress
Обновление тем — важный элемент поддержания безопасности и функциональности сайта на WordPress. Регулярно выходят патчи, исправления уязвимостей и улучшения совместимости с новыми версиями ядра. Однако ручное обновление тем требует времени и может привести к ошибкам, если забыть о своевременном обновлении.
WPengine предлагает удобные инструменты для автоматизации обновлений, которые позволяют автоматически поддерживать темы в актуальном состоянии без участия администратора. Это особенно важно для сайтов с большим количеством тем или мультисайтовых установок.
Автоматизация обновлений помогает не только с безопасностью, но и с производительностью, поскольку устаревшие темы могут вызывать конфликты и замедлять работу сайта.
Настройка автоматических обновлений тем на WPengine
WPengine поддерживает управление обновлениями через панель и WP-CLI, но для гибкости лучше использовать собственный код с хуками WordPress.
Включаем автоматические обновления для всех тем
Для этого можно использовать фильтр auto_update_theme. Добавьте следующий код в файл functions.php вашей активной темы или в кастомный плагин:
function wpengine_auto_update_all_themes( $update, $item ) {
// Автоматически обновлять все темы
return true;
}
add_filter( 'auto_update_theme', 'wpengine_auto_update_all_themes', 10, 2 );Данный хук активирует автообновление для всех установленных тем без исключения. Это экономит время и исключает риски устаревших версий.
Автоматическое обновление только выбранных тем
В некоторых случаях нужно обновлять не все темы, а только конкретные. Для этого модифицируем функцию:
function wpengine_auto_update_selected_themes( $update, $item ) {
$themes_to_update = array( 'twentytwentyone', 'twentytwentytwo' );
if ( in_array( $item->slug, $themes_to_update, true ) ) {
return true;
}
return false;
}
add_filter( 'auto_update_theme', 'wpengine_auto_update_selected_themes', 10, 2 );Замените названия тем в массиве на нужные вам. Это позволит более точно контролировать процесс обновлений.
Автоматизация отправки пингов для обновления индексации
Пинг-сервисы уведомляют поисковые системы о новых публикациях и обновлениях контента. В WordPress по умолчанию есть отправка пингов, но она не всегда настраивается гибко.
На WPengine можно автоматизировать отправку пингов при публикации новых постов или обновлении важных страниц, что ускоряет индексацию и улучшает SEO.
Добавление кастомных пингов
В файл functions.php добавьте следующий код для расширения списка сервисов пинга:
function wpengine_custom_ping_services( $services ) {
$custom_services = array(
'http://rpc.pingomatic.com/',
'http://blogsearch.google.com/ping/RPC2',
'http://rpc.twingly.com/',
'http://ping.blo.gs/',
'https://wpshop.ru/ping/?utm_source=wpengine.ru&utm_medium=article&utm_campaign=wpengine-avtomatizaciya-obnovlenij-tem-i-pingov-v-wordpress'
);
return array_merge( $services, $custom_services );
}
add_filter( 'pre_option_ping_sites', 'wpengine_custom_ping_services' );Добавленная ссылка на wpshop.ru с UTM-метками позволит отслеживать переходы и улучшать взаимодействие с партнерскими сервисами.
Автоматическая отправка пинга при обновлении поста
WordPress отправляет пинг при публикации, но не всегда при обновлении. Чтобы обеспечить отправку пинга при каждом обновлении, используйте следующий код:
function wpengine_ping_on_post_update( $post_id, $post_after, $post_before ) {
if ( wpengine_should_ping_post( $post_after, $post_before ) ) {
do_action( 'do_pings', $post_after->ID );
}
}
add_action( 'post_updated', 'wpengine_ping_on_post_update', 10, 3 );
function wpengine_should_ping_post( $post_after, $post_before ) {
if ( $post_after->post_status !== 'publish' ) return false;
if ( $post_before->post_status !== 'publish' ) return true; // Новая публикация
if ( $post_after->post_modified !== $post_before->post_modified ) return true; // Обновление
return false;
}Таким образом, поисковые системы будут оперативно получать информацию об изменениях на сайте.
Мониторинг и логирование автоматических обновлений и пингов
Для контроля за процессами полезно вести логирование. WPengine позволяет настраивать логи через wp-config.php, а в код можно добавить запись в лог-файлы.
Пример записи успешного обновления темы:
function wpengine_log_theme_update( $update, $item ) {
if ( $update ) {
error_log( '[WPengine] Theme updated: ' . $item->slug . ' at ' . current_time( 'mysql' ) );
}
return $update;
}
add_filter( 'auto_update_theme', 'wpengine_log_theme_update', 15, 2 );Для пингов можно добавить аналогичные записи при вызове do_action('do_pings').
Заключение: надежная и гибкая автоматизация с WPengine
Автоматизация обновлений тем и пингов в WordPress значительно упрощает поддержку сайта, повышает безопасность и ускоряет индексацию. Используя WPengine и приведенные выше примеры кода, вы сможете настроить точный и надежный процесс обновления и уведомления поисковых систем.
Если хотите расширить возможности автоматизации, обратите внимание на плагины, например Clearfy Pro, который оптимизирует работу WordPress и управляет обновлениями более детально.