20 запросов SQL для вашего блога на WordPress

WordPress сохраняет всю информацию в базе данных MySQL, будь то запись, страница, комментарий, настройки плагина ... все. Конечно, панель инструментов WordPress предоставляет фантастические возможности по контролю и редактированию всех аспектов информации. По крайней мере, до определенного момента.

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

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

 

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

База данных WordPress хранит каждую вашу запись, каждый комментарий от лояльного читателя и все настройки вашего сайта. Поэтому, вне зависимости от степени изменений, которые вы планируете внести  запросом SQL, сначала НЕОБХОДИМО сделать резервную копию базы данных.

В решении данной задачи вам может помочь плагин WordPress Databse Backup

 

1. Добавляем произвольное поле ко всем записям и страницам

Данный запрос добавить произвольное поле и к записям и к страницам в базе данных  WordPress. Вам нужно заменить ‘UniversalCutomField‘ на реальное имя поля, а ‘MyValue‘ - на значение поля.

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');

Если нужно вставить произвольное поле только в записи, используйте запрос:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
`` AND post_type = 'post';

А для страниц используем данный запрос:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
AND `post_type` = 'page';

 

2. Удаляем мета данные

Когда вы устанавливаете плагин, то он использует мета данные для хранения различной информации. После удаления плагина мета данные остаются в таблице post_meta. Для использования следующего запроса нужно изменить ‘YourMetaKey‘ на значение реального ключа.

DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';

 

3. Идентифицируем неиспользуемые теги

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

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;

 

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

Небольшой запрос может спасти ваш блог, если в него попало большое количество спам комментариев (количество может превышать десятки тысяч).

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

 

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

Данный запрос удалить из базы данных все отклоненные комментарии и оставит одобренные:

DELETE FROM wp_comments WHERE comment_approved = 0;

 

6. Запрещаем комментировать старые записи

В данном запросе с помощью изменения значения для comment_status  изменяем возможность комментировать записи (open - можно комментировать, closed - комментировать нельзя, registered_only - комментировать могут только зарегистрированные пользователи) опубликованные ранее определенной даты ( в примере используется 2010-01-01).

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

 

7. Разрешаем и запрещаем пингбек и трэкбек

В данном запросе также можно использовать значение для comment_status из списка  open, closed, и registered_only (смотри описание предыдущего запроса).

Разрешаем пингбек и трекбек для всех пользователей:

UPDATE wp_posts SET ping_status = 'open';

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

UPDATE wp_posts SET ping_status = 'closed';

 

8. Разрешаем/запрещаем пингбек и трекбек записей до определенной даты

В данном запросе задаем статус ping_status либо open (разрешить) либо closed (запретить), а также дату (в примере используется 2010-01-01).

UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';

 

9. Удаляем комментарии с определенного URL

Если спам комментарии содержат одинаковый URL, то данный запрос поможет удалить их все сразу. В качестве параметра для удаления используется строка, которая размещается между двумя символами ‘%’. Любой адрес URL, который содержит данную строку будет удален.

DELETE from wp_comments WHERE comment_author_url LIKE "%nastyspamurl%" ;

 

10. Выбираем и удаляем записи, которые старше ‘X’  дней

Для выбора записей, которые старше ‘X’ дней нужно использовать данный запрос (замените Х на нужное количество дней):

SELECT * FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > X

Для удаления записей, которые старше ‘X’ дней нужно использовать данный запрос (замените Х на нужное количество дней):

DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > X

 

11. Удаляем ненужный короткий код

Короткий код WordPress является отличным инструментом, но когда он становится ненужным записи все равно продолжают хранить его. Данный запрос удаляет ненужный короткий код из базы данных. Замените ‘tweet‘ на имя короткого кода, который надо удалить.

UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;

 

12. Делаем запись страницей и наоборот

Сделать запись страницей очень просто:

UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'

А если нужно выполнять обратную задачу, используем запрос:

UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'

 

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

Для данного запроса надо знать ID автора. Для его получения можно использовать другой запрос:

SELECT ID, display_name FROM wp_users;

Как только вы получите ID старого и нового автора можно производить замену. Нужно заменить ‘NEW_AUTHOR_ID‘ на  ID нового автора, а ‘OLD_AUTHOR_ID‘ на ID старого автора.

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

 

14. Пакетное удаление ревизий записей

Ревизии записей могут быть весьма полезными, но они существенно увеличивают размер базы MySQL. Можно удалять ревизии записей вручную, но значительно быстрее будет использовать запрос SQL.

DELETE FROM wp_posts WHERE post_type = "revision";

 

15. Деактивируем или активируем все плагины WordPress

Если вы вдруг оказываетесь перед "белым экраном смерти" и не можете войти в панель инструментов WordPress после активации нового плагина, то данный запрос окажет вам существенную помощь. Он деактивирует все плагины, что позволит войти в систему.

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

 

16. Изменяем адрес URL сайта WordPress

Как только вы переместите свой блог (файлы шаблона и базу данных) с одного сервера на другой, нужно сделать следующий шаг - сообщить WordPres новый адрес блога.

Нужно заменить ‘http://www.old-site.com‘ на старый адрес URL, а ‘http://www.new-site.com’ - на новый адрес URL. Первая команда:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.old-site.com', 'http://www.new-site.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Затем нужно изменить адрес URL в таблице wp_posts:

UPDATE wp_posts SET guid = replace(guid, 'http://www.old-site.com','http://www.new-site.com);

И в завершение нужно провести поиск по содержанию ваших заметок, чтобы убедиться, что новый адhtc URL не смешивается со старым:

UPDATE wp_posts SET post_content = replace(post_content, ' http://www.ancien-site.com ', ' http://www.nouveau-site.com ');

 

17. Изменяем имя пользователя по умолчанию ‘Admin’

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

Изменяем ‘YourNewUsername‘ на то, что нужно:

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

 

18. Переустанавливаем пароль вручную

Если вы единственный пользователь вашего блога WordPress и имя пользователя admin, то можно изменить пароль с помощью запроса SQL. Нужно заменить PASSWORD на новый пароль:

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

 

19. Поиск и замена содержания записи

Для поиска и замены содержания записи используйте следующий запрос. Замените ‘OriginalText‘ текстом, который надо найти, а ‘ReplacedText‘ - новым текстом.

UPDATE wp_posts SET `post_content`
= REPLACE (`post_content`,
'OriginalText',
'ReplacedText');

 

20. Изменяем адрес URL изображений

Если нужно поменять путь к вашим изображениям, вы можете использовать следующий запрос SQL (замените http://www.myoldurl.com на старый адрес папки с изображениями, а http://www.mynewurl.com - на новый адрес):

UPDATE wp_posts
SET post_content = REPLACE (post_content, 'src=”http://www.myoldurl.com', 'src=”http://www.mynewurl.com');

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/nxfG_3V-Ep0/lessons.php

Читать комменты и комментировать

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



Защитный код
Обновить

20 запросов SQL для вашего блога на WordPress | | 2012-06-19 12:08:25 | | Статьи Web-мастеру | | WordPress сохраняет всю информацию в базе данных MySQL, будь то запись, страница, комментарий, настройки плагина ... все. Конечно, панель инструментов WordPress предоставляет фантастические | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: