11 SQL запросов для WordPress

15 мая 2011 года, Размещено в категории: PHP / MySQL

Добрый день, сегодня пост про незаменимые вещи - SQL запросы, ведь порой случаются проблемы у блога, такие как: смена пароля, замена какого-нибудь одного слова во всех постах на другое и.т.п. И SQL запросы помогают быстро справиться со многими вещами.

SQL запросы для WordPress

Для того чтобы исполнять SQL запрос, надо нам попасть в PhpMyAdmin и во вкладке SQL уже вписываем запросы:

SQL запросы для WordPress

1. Пакетное удаление спам комментариев

Данный запрос, позволяет удалить сразу все спам комментарии на блоге.

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

2. Пакетное удаление отклоненных комментариев

Удаляем все отклонённые и оставляем только ободрённые комментарии:

DELETE FROM wp_comments WHERE comment_approved = 0;

3. Запрет на комментирование записей

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

UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' 
AND post_status = 'publish';

4. Удаляем одинаковые url в комментариях

Этот запрос поможет удалить один урл из всех комментариев на блоге, содержащих этот адресс.

DELETE from wp_comments WHERE comment_author_url LIKE "http://dicim.net";

5. Изменяем автора для всех записей

Для того чтобы заменить автора статей, надо нам знать ID всех авторов на блоге. Существует очень много способов узнать ID автора, но самый простой наверно, это посмотреть в админке, id автора указан в конце ссылки опубликованных автором статей, смотрите на скриншоте:

id автора WordPress

Например чтобы все записи автора с ID = 10 стали принадлежать автору с ID = 5, мы должны выполнить вот такой запрос:

UPDATE wp_posts SET post_author=5 WHERE post_author=10;

6. Изменяем имя пользователя

Этот запрос позволяет менять имя пользователя, в данном случае мы Admin меняем на lol

UPDATE wp_users SET user_login = 'lol' WHERE user_login = 'Admin';

7. Меняем пароль пользователя

Для пользователя admin мы меняем пароль на 123456

UPDATE 'wp_users' SET 'user_pass' = MD5('123456') WHERE 'user_login' ='admin' LIMIT 1;

Так же советую почитать статью Как восстановить пароль wordpress, там более подробно описан механизм смены пароля.

8. Замена слова в тексте

Перед нами стоит задаса: Заменить слово Яндекс на Google во всех постах на сайте, чтобы это выполнить надо создать такой вот запрос к базе данных MySQL

UPDATE wp_posts SET post_content = REPLACE (post_content,'Яндекс','Google');

9. Получить e'mail всех комментаторов

Таким запросом можно получить все почтовые ящики ваших комментаторов:

SELECT DISTINCT comment_author_email FROM wp_comments;

10. Отключить все плагины

Возникают разные ситуации, когда например из-за не совместимости плагинов вы не можете попасть в админку, самый лучший вариант - отключить сразу все плагины. Это выполняется вот таким запросом:

UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';

11. Удаление копий

WordPress создаёт и хранит много копий практически к каждой записи на блоге. Когда этих записей становиться очень много, блог начинает заметно дольше грузиться, так как поиск информации в большой БД замедляется. Поэтому периодически надо производить вот такой запрос:

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

На этом всё, спасибо за внимание. Если вы знаете интересные и главное полезные запросы SQL, то пишите в комментариях. Я их обязательно добавлю в статью.






14 комментариев

  • 6 лет назад Ответить

    Пользоваться окном sql запросов в phpmyadmin как минимум не разумно. Он сделан в первую очередь для работы мышкой в визуальной среде. Это все равно что купить машину у которой есть в качестве опций — педали, и ездить на ней не заводя двигателя, а крутя педали )))

  • 6 лет назад Ответить

    Твое мнение:Честно говоря, я тоже так не делал бы. Но… этот пост написан не для программистов, а для владельцев сайтов (за что респект), которые совсем не обязаны уметь программировать. Поэтому им будет куда проще сделать это в визуальной оболочке (phpmyadmin).

    Второй вариант, как можно выполнить запросы и как бы это делал я — написать простой скрипт лишь с одной строчкой (не считая подключения к БД) и сохранить его в файл .php

    Затем остаётся лишь его запустить через адресную строку.

    Но это мне так удобнее, а человеку, ведущему свой личный блог на WP, уметь этого делать не надо (пусть это и просто). Ему куда проще оперировать данными в визуальной среде. Да и метод, каким запросы будут выполняться — не самое главное в этой статье. В данном случае важны сами запросы, которые, кстати говоря, важны будут лишь НЕ программисту, ибо программист, узнав названия таблиц и полей, он и сам легко напишет запросы.

    Кстати, если есть желание, можем обменяться постовыми. Чуть что, пишите на e-mail.

  • 6 лет назад Ответить

    Спасибо за полезную информацию, возьму на заметку, пригодится))

  • 6 лет назад Ответить

    уж коль затронута тема запросов, есть потребность в запросе, который удалил бы одинаковые посты на сплоге, оставив лишь по одному экземпляру.
    Спасибо.

  • 6 лет назад Ответить

    Воспользовался 11 хаком. Большое спасибо! Выручили)

  • 6 лет назад Ответить

    Прекрасно, это то, что я давно искала: возможность сразу на всём блоге поменять одно на другое 🙂
    Интересует ещё вот что: можно ли менять теги, не затрагивая текст?
    Поясню: предположим, есть тут некий текст, — можно ли с помощью SQL запроса поменять эту конструкцию на другую, тут некий текст? То есть текст, обрамлённый тегами, не трогать, менять только теги?
    Спасибо 🙂

    • 6 лет назад Ответить

      Можно, восьмой пункт для вас. Только сделайте бекап на всякий случай.

  • 6 лет назад Ответить

    Хм.. теги скушались 🙁
    Попробую ещё раз: изменить <teg1>тут некий текст</teg1> на <teg2>тут некий текст</teg2>

  • 6 лет назад Ответить

    Спасибо за sql запросы! Немного изменив — добился что хотел! Надо было заменить html символ на тире в заголовках статей. Вот пример:
    UPDATE wp_posts SET post_title = REPLACE (post_title,’—’,’–’);

    • 6 лет назад Ответить

      Пожалуйста, так же часто спасали не раз эти запросы.

  • 4 года назад Ответить

    Здравствуйте. А не подскажите ли SQL запрос, который бы удалял все одинаковые статьи с сайта на WP? То есть есть статьи у которых разные названия, но одинаковый контент. Вот их надо как-то удалить, а вручную это сделать нереально по времени.
    Спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Перед отправкой формы: