Как провести генеральную уборку в блоге WordPress с помощью запросов в базе данных

Как провести генеральную уборку в блоге WordPress с помощью запросов в базе данных | n-wp.ru

WordPress является функциональной, мощной платформой, и именно ее универсальность создает не только преимущества, но и помехи: платформа требует постоянной поддержки и контроля, иначе, из-за огромного числа функций и возможностей, при активном использовании блога она грозит наполниться ненужными данными, которые в дальнейшем могут сказаться на удобстве использования и общей производительности. Поэтому если в блоге большая активность, то его стоит периодически чистить от ненужной информации. Такая чистка приведет дела и мысли в порядок, да и объем базы данных уменьшится, не позволив блогу стать неповоротливым монстром.

Многие операции по очистке можно делать в phpMyAdmin путем выполнения прямого запроса в базе данных. Для этого нужно открыть phpMyAdmin, выбрать вашу базу данных, перейти на вкладку SQL, ввести и выполнить запрос. Чтобы нижеприведенные запросы работали корректно, на всякий случай в поле Delimiter поставьте разделитель “точку с запятой”.

Как провести генеральную уборку в блоге WordPress с помощью запросов в базе данных

Для поддержания порядка следует периодически чистить черновики. Если в блоге работает несколько авторов, и их продуктивность высока, то со временем в черновиках скапливается такое количество постов, что ориентироваться в них становится трудно. заведите за правило хранить в черновиках только действительно нужное, а все остальное периодически удаляйте. Это и авторов дисциплинирует (они будут знать, что если за определенный срок не закончили работу над статьей, то значит она уже и не так важна, и ее можно удалить), и вам позволит навести порядок в постах.

Если вы решили, что вам не нужны вообще все черновики, то их можно удалить, зайдя в базу данных и выполнив запрос

DELETE FROM 'wp_posts' WHERE post_type='draft'

Каждый раз, когда вы редактируете посты, и в настройках установлен период автосохранения, WordPress создает ревизию поста – резервную копию с последними изменениями. Количество ревизий так же можно установить в глобальных настройках WordPress. В итоге, если вы часто автосохраняетесь и определено большое количество ревизий, текст каждого редактируемого поста сохраняется многократно. Вам действительно нужно хранить все ревизии? Или достаточно одной, последней ревизии?

Если вы хотите удалить все ревизии, которые, кстати, хранятся в базе данных, то можете войти в phpMyAdmin и выполнить запрос:

DELETE FROM 'wp_posts' WHERE post_type='revision'

Если вы хотите впредь ограничить количество ревизий, то укажите в файле wp-config.php максимальное количество сохраняемых ревизий и интервал автосохранения в секундах:

define('WP_POST_REVISIONS', 1);
define('AUTOSAVE_INTERVAL', 60);

Помимо ревизий движок сохраняет нулевые авто-черновики. Они возникают, когда создается новый пост без содержимого, который автоматически сохраняется системой автосохранения. Если они вам не нужны, то вы можете избавиться от всех них одним махом, выполнив в базе данных запрос:

DELETE FROM wp_posts WHERE post_status = 'auto-draft'

Если вы удаляете посты в админке, то они удаляются в корзину. Постепенно в ней накапливается большое количество ненужных постов. Удалить их все можно с помощью запроса в базе данных:

DELETE FROM wp_posts WHERE post_status = 'trash'

Те комментарии, которые вы пометили, как спам, не удаляются сразу, а просто скрываются со страниц, оставаясь доступными в админке. Вы можете вернуться к ним позже, проверив, действительно ли все комментарии, попавшие в спам, являются таковыми. Если в спаме находится только спам, то это просто куча ненужных данных, занимающих место в базе. Удалив спам, вы ничего не потеряете, а база данных станет легче, что положительно скажется на скорости работы блога.

Помимо стандартно удаления спама через админку можно удалить спам одним разом с помощью запроса в базе данных:

DELETE from wp_comments WHERE comment_approved = 'spam'

Если в блоге используется премодерация комментариев (публикация комментариев после их одобрения администратором), то со временем может накопиться большое количество неодобренных комментариев. Если эти комментарии потеряли свою актуальность или являются спамом, то их все можно удалить в базе данных одним запросом:

DELETE from wp_comments WHERE comment_approved = '0'

Если вы удаляете комментарии через админку, то они отправляются в корзину. Со временем там может накопиться множество ненужных комментариев. Можно очистить корзину в админке, а можно, если вы уже открыли базу данных, и запросом:

DELETE from wp_comments WHERE comment_approved = 'trash'

10 Комментарии

  1. А я пользуюсь плагином, WP-Cleanup. Он показывает, сколько место в базе занято ненужными записями, и даже разделяет это все по типам.

    Ну а вообще, пока у вас не стало более 100000 записей(примерно, зависит от многих факторов), такие действия заметной пользы не принесут.

  2. А кто знает как очистить сайт от битых ссылок? Плагин Broken Link Checker можете не предлагать он не фига не помогает мне.

  3. здравствуйте, я по вашему совету в конфиг добавил define для удаления ревизий и очистки корзины, но после этого у меня не хотят публиковаться посты, как исправить, не подскажите?

    • Удалите эти сточки из wp-config.php, но думаю, что дело не в этом. Удаление ревизий не влияет на публикацию постов. Ищите проблему в другом.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*