Практичные SQL запросы к базе данных WordPress

Практичные SQL запросы к базе данных WordPress

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

Важно! Любое «общение» с базой данных WordPress, начните с создания резервной копии базы данных  для восстановления сайта в случае фатальных ошибок.

Удалить все ревизии статей

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

Удалить ревизии статей из панели сайта нельзя. Поэтому, чтобы удалить все ревизии статей, которые скопились на данный момент, делаем следующий SQL запрос (вверху код):

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'

Изменить URL главной страницы и URL сайта

При переносе сайта WordPress с локального сервера меняется URL главной страницы и URL сайта. Система WordPress сохраняет эти абсолютные URL в базе данных. После переноса сайта старые URL нужно удалить. Для этого сделайте следующий SQL запрос:

UPDATE wp_options
SET option_value = replace(option_value, 'http://СТАРЫЙУРЛ.ru', 'http://НОВЫЙУРЛ.ru')
WHERE option_name = 'home'
OR option_name = 'siteurl';

Изменить индетификатор URL (GUID)

Каждый URL в базе данных имеет свой уникальный идентификатор (GUID -Globally Unique Identifier). После переноса сайта с локального компьютера или смене домена, нужно изменить URL в поле GUID в таблице wp_posts, сделав следующий SQL запрос:

UPDATE wp_posts SET guid = REPLACE (guid, 'http://СТАРЫЙУРЛ.ru', 'http://НОВЫЙУРЛ.ru');

Изменить URL в контенте

Система WordPress сохраняет в базе данных и старые абсолютные пути ссылок сайта в базе данных. Их также нужно изменить:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://СТАРЫЙУРЛ.ru', 'http://НОВЫЙУРЛ.ru');

Изменить URL картинок

После миграции сайта меняются и URL картинок в медиа библиотеке. Чтобы их поменять делаем следующий SQL запрос:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://СТАРЫЙУРЛ.ru', 'src="http://НОВЫЙУРЛ.ru');

Не забываем про GUID прикрепленных файлов.

UPDATE wp_posts SET guid = REPLACE (guid, 'http://СТАРЫЙУРЛ.ru', 'http://НОВЫЙУРЛ.ru') WHERE post_type = 'attachment';

Смена Meta информации сообщений

Все аналогично смене URL

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://СТАРЫЙУРЛ.ru','http://НОВЫЙУРЛ.ru');

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

При установке WordPress вы задаете имя и пароль для владельца сайта, администратора. Ранее по – умолчанию, система предлагала имя Admin.

Чтобы поменять имя Admin, сделайте следующий SQL запросы к базе данных WordPress:

UPDATE wp_users SET user_login = 'НОВОЕ ИМЯ' WHERE user_login = 'Admin';

Смена пароля WordPress

Потеряли пароль для авторизации — не беда. Можно сменить пароль учетной записи WordPress, сделав следующий запрос SQL:

UPDATE wp_users SET user_pass = MD5( 'НОВЫЙ ПАРОЛЬ' ) WHERE user_login = 'ВАШ ЛОГИН';

MD5- способ кодирования. Новый пароль вписывается в простом, не закодированном виде. 

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

Чтобы поменять автора  “А” на автора  “Б”, сразу на всем сайте и не заниматься этим вручную, достаточно сделать следующие SQL запросы к базе данных WordPress:

UPDATE wp_posts SET post_author = 'НОВЫЙ АВТОР-id' WHERE post_author = 'СТАРЫЙ АВТОР-id';

Удаление следов плагинов WordPress

Некоторые плагины после удаления плагина оставляют записи в таблице post_meta. Чтобы их удалить, сделайте следующий SQL запрос к БД:

DELETE FROM wp_postmeta WHERE meta_key = 'your-meta-key';

Удаление всех пингбеков (pingback)

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

DELETE FROM wp_comments WHERE comment_type = 'pingback';

Удаление всех СПАМ комментариев

Спам комментарии тоже пишутся в базу данных. Если вы пользуетесь плагином Akismet, то об удалении спам комментариев можно не беспокоиться. Однако их можно удалить, сделав следующий SQL запрос (ставим spam -удаляем спам; вместо spam ставим 0 – удаляем комментарии на одобрении; ставим  1 – удаляем одобренные комментарии):

DELETE FROM wp_comments WHERE comment_approved = 'spam';

 Поиск неиспользуемых тегов

Теги к статьям одновременно помогают и вредят в  оптимизации сайта WordPress. Основной вред от тегов — создание дублей страниц. Именно из- за этого теги и закрывают от поисковиков, прописывая соответствующее правило в файле robots.txt или устанавливая SEO плагин WP.

Кроме этого теги не удаляются с удалением статей сайта. Чтобы найти не используемые теги сделайте следующий SQL запрос:

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;

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

Удаление пустых меток

DELETE a,b,c FROM wp_terms a LEFT JOIN wp_term_taxonomy c ON a.term_id = c.term_id LEFT JOIN wp_term_relationships b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE ( c.taxonomy = 'post_tag' AND c.count = 0 )

Параметр c.count = 0 означает, что удаляем пустые метки

Смена темы сайта

Twenty Fourteen тема взятая для примера.

UPDATE wop_options SET option_value = ' Twenty Fourteen' WHERE option_name = 'template';
UPDATE wop_options SET option_value = ' twentyfourteen ' WHERE option_name = 'stylesheet';
UPDATE wop_options SET option_value = ' twentyfourteen ' WHERE option_name = 'current_theme';