Май
27
10

Полезные SQL запросы и хаки для wordpress блога

sql запросы wordpressНе смотря на то, что система wordpress позволяет решать много различных задач, иногда возникает необходимость оперативного вмешательства для быстрого исправления конкретных проблем. В таких случаях лучше всего работать с базой данных напрямую. Все это осуществляет с помощью специальных SQL запросов, некоторые из которых сегодня предлагаю вам рассмотреть (вторую часть статьи найдете тут).

Во-первых, для начала пару слов о том, как же эти самые SQL запросы выполнять. Для этого вам понадобится популярная программа PhpMyAdmin – которая позволяет работать с базой данных в приятном графическом интерфейсе. На большинстве хостингов она установлена, поэтому переживать по этому поводу не стоит.

Для тех, кто все равно не хочет использовать сторонние разработки, пусть даже очень распространенные и надежные, можно посоветовать найти какие-то плагины под WordPress, которые бы позволяли выполнять SQL запросы – например, SQL Executionner или похожие модули. Хотя, в принципе, тут нужно быть на 100% уверенным в нем или все же воспользоваться стандартным инструментом PhpMyAdmin. Также в качестве альтернативы при решении тех или иных задач можно поискать соответствующие модули, например чтобы изменить типы записей пригодится Post Type Switcher (без необходимости правки БД).

В любом случае нужно быть очень аккуратным когда работаете с базой данных! А еще лучше предварительно сделать бэкап wordpress блога кстати делается в том же PhpMyAdmin – читаем статью. Ну, а теперь собственно полезные SQL запросы и хаки для wordpress.

Изменяем пароль блога

Некоторые думают, что с ними никогда такого не случится, но порой люди забывают пароль от своего блога либо просто теряют его. В таком случае мы можем создать новый прямо через обращение к базе данных MySQL database. Для этого используем следующий запрос, где, кстати, функция MD5() преобразовывает указанный нами новый пароль (user_pass) в зашифрованный формат MD5 hash.

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

Меняем автора поста wordpress

Многие новички в блоггинге используют в работе старый аккаунт «admin», что идет по умолчанию вместо создания нового с их настоящим именем. Кроме того это полезно для безопасности системы. В любом случае, после некоторого времени вы можете передать все написанные статьи от старого админка к новой учетной записи с помощью SQL запроса:

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

Здесь вместо AUTHOR_ID вы должны подставить ID нового и старого аккаунтов. Кстати, видел в wordpress такую штуку, что при удалении аккаунта система спрашивает куда делать все его тексты — и при этом можно выбрать нового админа.

Удаляем ревизии постов и их мета данные

Ревизии для постов достаточно удобны, если вы ведете блог с несколькими авторами, однако при этом они создают слишком много записей в базе данных. Например, если у вас в блоге 100 статьей, для каждой из которых создается по 10 ревизий, то в итоге получится 1000 строк для таблицы wp_posts, где только 100 реально нужны. Выполнив следующий SQL запрос вы удалите все ревизии и мета данные (custom fields и т.п.), связанные с ними.

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

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

Представьте ситуацию, когда вы возвращаетесь из отпуска, где длительное время не было доступа в интернет. Если при этом вы не установили антиспам плагин Akismet, то в зависимости от популярности блога можете получить от 1000 до 10000 комментариев для модерации. Разгребать все это придется чуть ли не целый день, а можно просто удалить комментарии, которые не были апрувлены автоматически.

DELETE from wp_comments WHERE comment_approved = '0';

Тут, у автора, наверное установлена опция «пропускать» все комментарии у автора, который имеет предварительные апрувленные комментарии. В любом случае, нужно установить плагин Akismet.

Находим неиспользуемые теги

Теги записываются в таблицу базы данных wp_terms. Если по каким-то причинам тег был создан, но не используется, то он все равно хранится в таблице. Данный SQL запрос позволит найти теги из таблицы wp_terms, которые не используются в блоге и которые можно будет спокойно удалять.

SELECT * From wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;

В принципе, много чего с метками можно сделать и через плагин simple tags. Вообще, как я и сказал вначале, система вордпресс позволяет решать многие задачи, но иногда намного быстрее все сделать простыми SQL запросами к базе данных. Хотя при этом нужно знать, что и как делать, а также не забывать про бэкапы БД.

P.S. Постовой. Нас сайт подскажет где купить пальто в Киеве.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 2, средний балл: 7,00 из 7)
Загрузка...

категория Категории: Хаки и секреты;
теги Теги: , , , , .

комментариев 10 к статье “Полезные SQL запросы и хаки для wordpress блога”

  • Самостоятельный Путешественник   27.05.2010

    Из раздела поста под названием «Удаляем ревизии постов и их метаданные» команда SQL глючная. Вот какую ошибку выдает — «ERROR 1109 (42S02): Unknown table ‘b’ in MULTI DELETE»

  • Самостоятельный Путешественник   27.05.2010

    Правильная команда SQL для чистки БД от ревизий постов следующая — DELETE FROM wp_posts WHERE post_type=’revision’ (проверено на собственном блоге) :)

  • micro   28.05.2010

    Очень полезно, особенно про автора блога, большое спасибо!

  • Tod   28.05.2010

    Самостоятельный Путешественник, странно, конечно, что не работает, но я признаться не пробовал — поэтому поверю. Там просто не только удаление ревизий, но еще всех их метаданных из других таблиц. Из-за этого она и получилась такая большая, если просто удалить ревизии, то действительно подойдет
    DELETE FROM wp_posts WHERE post_type=’revision’

  • cava150   28.05.2010

    Пост полезный, но что бы описать все запросы,которые можно сорудить с бд блога — прийдется потратить много времени)

  • Артин   29.05.2010

    Полезная статья. Я бы все таки посоветовал использовать плагин WP-DBmanager. Он и сделает бэкап и оптимизирует и запрос выполнит )

  • Zolter   30.05.2010

    Реально полезно. Взял на вооружение…

  • Виктор   12.06.2010

    Так умно написано, а в комментах куча спама, вот например
    micro 28.05.2010

    Очень полезно, особенно про автора блога, большое спасибо!

    Тут про автора блога ничего не сказано=))
    установите akismet

  • Tod   15.06.2010

    Виктор, у меня установлен не только akismet:) Это «умные спамеры», ссылку от меня они вряд ли получат ибо нехорошо, да и еще пиарят всякую гадость…

  • architectofruin   22.09.2011

    Удалить спамерские комментарии можно и без обращения к базе данных. Рядом со списком этих самых комментариев, которые Akismet пометил как спам, есть флажок, который отвечает за выделение всех элементов в списке. После этого достаточно кликнуть по кнопке Очистить спам, и проблема решена малой кровью.

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

(предыдущая статья)

Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости