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

Опубликовано: 24.08.2018

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

Во-первых, для начала пару слов о том, как же эти самые SQL запросы выполнять. Для этого вам понадобится популярная программа PhpMyAdmin – которая позволяет работать с базой данных в приятном графическом интерфейсе. На большинстве хостингов она установлена, поэтому переживать по этому поводу не стоит. Для тех, кто все равно не хочет использовать сторонние разработки, пусть даже очень распространенные и надежные, можно посоветовать найти какие-то плагины под WordPress, которые бы позволяли выполнять SQL запросы – например, SQL Executionner или похожие модули. Хотя, в принципе, тут нужно быть на 100% уверенным в плагине или все же воспользоваться стандартным инструментом PhpMyAdmin. В любом случае нужно быть очень аккуратным когда работаете с базой данных ! А еще лучше предварительно сделать бэкап 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 ;

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 ;

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 ) ;

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' ;

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 ;

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. Постовой. Нас сайт подскажет где купить пальто в Киеве.

IRC (Internet Relay Chat)
rss