20 нужных SQL запросов для WordPress

SQL запросы для WordPress блогаВсем привет! Сегодня я расскажу про 20 самых важных sql запросов для WordPress.

Админка вашего сайта — это всего лишь панель управления бд вашего сайта. Но не всегда в ней можно все исправить, приходится использовать SQL-запросы.

Если вы помните, я писал в одной из статей, как поменять логин в WordPress — не все так было легко поменять логин от админки, а с помощью одного sql запроса данная задача моментально решилась.

Что предстоит делать: чтобы применить какой-нибудь SQL-запрос необходимо зайти на ваш хостинг и перейти в phpMyAdmin.

[stextbox id=»warning»]Совет: сделайте резервную копию БД вашего сайта перед любыми изменениями.[/stextbox]

Содержание:

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

› Управление админкой: работа с записями, смена логина/пароля

› Управление комментариями: запретить комментирования старых постов и т.п.

Как выполнить SQL запрос

Зайдите в админку хостинга и перейдите в phpMyAdmin, где выберите название своей БД (например, если у вас их несколько). Выберите пункт SQL, получится, как на картинке ниже:

Далее напечатайте в свободном поле ваш запрос и нажмите OK.

Смена домена

Как поменять адрес сайта на новый

Допустим, вы купили новый домен и хотите перенести сайт на него. Но нужно изменить все пути, который ведут на старый домен, поэтому пишем данную команду:

UPDATE wp_options SET option_value = 'http://site.ru/' WHERE option_name = 'home' OR option_name = 'siteurl'

Вместо http://site.ru/ пропишите ваш новый домен.

Поменять ссылки в постах на новые

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

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://СтарыйАдрес.ru', 'http://НовыйАдрес.ru');

Поменяем домен в произвольных полях

В произвольных полях тоже могут остаться ссылки на старый домен, поэтому, чтобы полностью завершить смену адреса, нужно выполнить данный SQL запрос:

  1. UPDATE wp_postmeta
  2. SET meta_value = REPLACE (meta_value, ‘http://oldblog.ru’,’http://newblog.ru’)

Редактирование GUID

При переезде на новый адрес нужно поменять значение GUID — globally unique identifier, хранящееся в wp_posts, на новое.

  1. UPDATE wp_posts SET guid = REPLACE (guid, ‘http://www.oldblog.ru’, ‘http://www.newblog.ru’);

Говорят, это нужно, чтобы WordPress мог перенаправлять с неправильных адресов на правильные.

Админка WordPress: работа с записями и доступом

Смена пароля

Конечно, пароль можно легко сменить и в админке сайта Пользователи -> Ваш профиль, но, если вы его потеряли и хотите сменить, то данный запрос поможет его поменять на новый:

UPDATE wp_users SET user_pass = MD5('1234567') WHERE ID=1;

В данном случае ваш пароль будет 1234567 — используйте пароли надежнее и больше символов.

Также можно поменять пароль для любого другого пользователя. Надо знать его логин — admin, а в скобках 12345, написать пароль:

UPDATE wp_users SET user_pass = MD5('12345') WHERE user_login = 'admin';

Смена логина в админке сайта

Как говорил выше, логин поменять в админке сайта будет трудновато, поэтому выполнить SQL запрос будет намного проще:

UPDATE wp_users SET user_login = 'newlog' WHERE user_login = 'admin';

В нашем случае новый логин будет newlog. Также необходимо знать старый логин, в моем случае — admin.

Поменять автора записей

Когда-то писал на вашем блоге автор с именем Вася Пупкин, но вы решили, что это ваши записи, поэтому поменяем автора но нового:

UPDATE wp_posts SET post_author=New_Author_ID WHERE post_author=Old_Author_ID;

New_Author_ID — это ID нового автора, а Old_Author_ID — ID старого автора. ID — это цифры, буквы использую просто для примера, иначе говоря ID — 123.

Если вы не знаете ID пользователей блога, то следующий SQL запрос поможет вам

Узнать ID пользователей

SELECT ID, display_name FROM wp_users;

Удаление записей старше, чем х дней

Не представляю зачем это нужно, так что вот вам запрос:

  1. DELETE FROM `wp_posts`
  2. WHERE `post_type` = ‘post’
  3. AND DATEDIFF(NOW(), `post_date`) > X

Только X поменяйте на число.

Удаление ревизий постов

Помните статью про оптимизацию WordPress блога там как раз я описывал данный пример.

Советую прочитать статью оптимизация WordPress блога — там я рассказывал, как сделать ревизию постов с помощью плагина.

[stextbox id=»info»]Не лезьте туда, куда не знаете! Лучше воспользуйтесь плагином для ревизии постов. Также сделайте бекап БД.[/stextbox]

Правда, здесь мало чего может быть трудного, вот SQL запрос:

  1. DELETE a,b,c FROM wp_posts a
  2. LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
  3. LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
  4. WHERE a.post_type = ‘revision’

Деактивировать все плагины разом

Иногда, из-за одного плагина может не работать весь блог, можно его удалить через FTP, либо, через phpMyAdmin:

  1. UPDATE wp_options SET option_value = » WHERE option_name = ‘active_plugins’

Работа с комментариями на блоге

Собрать базу e-mail комментаторов

Данный SQL запрос поможет собрать базу email адресов ваших комментаторов без дубликатов. К примеру, ее можно использовать для рассылки новостей вашего сайта:

  1. SELECT DISTINCT comment_author_email FROM wp_comments;

Изменить адрес сайта комментатора

Когда комментатор прописывает в поле домашняя страница адрес сайта, то его можно изменить с помощью этого запроса:

  1. UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, ‘http://www.oldblog.ru’, ‘http://www.newblog.ru’ );

Удалить спам комментарии

Можно удалить все спам комментарии с помощью плагина WP-Cleanup — он удаляет редакции постов, а также чистит блог от спам комментариев.

  1. DELETE FROM wp_comments WHERE comment_approved = 0

Комментирования только для зарегистрированных пользователей

  1. UPDATE wp_posts SET comment_status = ‘registered_only’

Закрыть комментирования для всех записей

  1. UPDATE wp_posts SET comment_status = ‘closed’

Открыть комментирования для всех записей

  1. UPDATE wp_posts SET comment_status = ‘open’

Удалить комментарии по маске

Например, в адресе комментатора встречается сочетание букв poker

  1. DELETE a,b
  2. FROM wp_comments a
  3.   LEFT JOIN wp_commentmeta b ON ( a.comment_ID = b.comment_id )
  4. WHERE
  5.     a.comment_author_url LIKE ‘%poker%’

Закрыть комментирование в рубрике

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

  1. UPDATE wp_posts p
  2.     LEFT JOIN wp_term_relationships rel ON ( p.ID = rel.object_id )
  3.     LEFT JOIN wp_term_taxonomy tax ON ( tax.term_taxonomy_id = rel.term_taxonomy_id  )
  4.     LEFT JOIN wp_terms tm ON ( tm.term_id = tax.term_id )
  5. SET p.comment_status = ‘closed’
  6. WHERE tm.slug = ‘aboutme’

Запрет на комментирования старых записей

Допустим ваш блог dofollow — советую посмотреть, что такое dofollow блоги. Спамеры все пишут и пишут, а удалять все спам-комментарии трудно, поэтому удобной идеей будет закрыть комментирование старых постов. Пропишите данный SQl запрос:

  1. UPDATE wp_posts SET comment_status = ‘closed’ WHERE post_date < ‘2012-01-01’ AND post_status = ‘publish’;

«2012-01-01« — это дата, комментирование записей опубликованных раньше нее будет недоступно. Хотя, если у вас справляется с этим плагин для защиты от спама, то можно к этому не прибегать. Вот к примеру, невидимая капча для комментирования.

Удалить лишние Meta теги

Когда вы устанавливаете различные плагины, подумайте, нужен ли он вам. Часто, при удалении плагинов они оставляют в таблицах свои данные, обычно в wp_postmeta. Поэтому, чтобы облегчить ваш блог, а это тоже оптимизация, используйте команду:

  1. DELETE FROM wp_postmeta WHERE meta_key = ‘your-meta-key’;

В данном запросе your-meta-key это meta ключ, который будет удален.


Похожие записи:

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

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

Похожие записи: