Пинг WordPress — снижаем нагрузку на сервер

Способы снизить нагрузку на сервер WordPress при публикации новых записей. Отключаем и настраиваем WP для быстрой и корректной работы

Я люблю ускорять работу WordPress, снижать нагрузку на сервер и все, что с этим связано.

Сегодня я расскажу как можно снизить нагрузку на сервер при написании новых постов или при редактировании старых.

После того, как вы написали новую статью и нажали кнопку «Опубликовать», WordPress «бросает» страницу на главную, обновляет базу данных, создает карту сайта (если установлен нужный плагин) и пингует сервисы обновления из вашего списка. Причем делает он все эти операции одновременно. При небольшом количестве процессов нагрузка соответственно не большая. Но если ваш блог уже вырос из категории «новый», то нагрузка бывает весьма большой.

Я предлагаю простое решение. В файл functions.php добавьте строки:

<?php
remove_action('publish_post', 'generic_ping');
add_action('publish_post', 'masq_set_generic_ping');
function masq_set_generic_ping() {
	update_option('masq_generic_ping_waiting', 1);
}
if(strstr($_SERVER['REQUEST_URI'], 'execute-pings.php')
!== FALSE && get_option('masq_generic_ping_waiting')) {
	update_option('masq_generic_ping_waiting', 0);
	generic_ping();
}
?>

Теперь WordPress отсрочит пингование. Пинг будет происходить только после завершения всех предыдущих операций по публикации (редактировании) поста, обновлении БД и т.д.

В последнем WP 2.8.* эта функция активирована по-умолчанию.