Практичные SQL запросы к базе данных WordPress
Вступление
Содержание статьи:
SQL запросы к базе данных WordPress позволяют без лишних плагинов осуществить действие применимое ко всему содержанию сайта. Кроме копирования, удаления отдельных таблиц и всей базы в целом, SQL запросы позволяют менять URL страниц, менять автора, менять пароли, удалять устаревшую информацию и т.п.
Важно! Любое «общение» с базой данных WordPress, начните с создания резервной копии базы данных для восстановления сайта в случае фатальных ошибок.
Как сделать SQL запрос
SQL это специальный структурированный язык запросов ((Structured Query Language) для работы с реляционными базами данных.
Сделать SQL запрос у БД можно в панели управления базой данных, phpMyAdmin. Для этого войдите в phpMyAdmin из административной панели хостинга, используя имя и пароль пользователя этой базы данных. Панель откроется в браузере.
Далее откройте нужную базу данных, нажав на кнопку «Структура». Чтобы сделать SQL запрос воспользуйтесь кнопкой SQL запрос.
SQL запросы к базе данных WordPress
Во всех приведенных примерах Полезные SQL запросы к базе данных WordPress, делаются к базе данных с префиксом wp_
. Чтобы использовать приведенные запросы к своей базе данных, измените префикс wp_
на префикс своей БД. На некоторых фото префикс wp_
заменен на wop_
.
Важно! На phpmyadmin, много полезных кнопок. Для проверки правильности введенного SQL запроса есть отличная кнопка “Имитировать запрос”, пользуйтесь ей, прежде чем делать Не проверенный ранее запросы к базе данных. Еще одно, запрос ко всей базе данных отличается от запроса к таблице. Будьте внимательны.
Запрос 1. Удалить все ревизии статей
При редактировании статей 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'
После нажатия «ОК» видим результаты выполненного SQL запроса.
Изменить URL главной страницы и URL сайта
При переносе сайта WordPress с локального сервера меняется URL главной страницы и URL сайта. Система WordPress сохраняет эти абсолютные URL в базе данных. После переноса сайта старые URL нужно удалить. Для этого сделайте следующий SQL запрос:
UPDATE wp_options SET option_value = replace(option_value, 'http://www.СТАРЫЙУРЛ.com', 'http://www.НОВЫЙУРЛ.com') 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://www.СТАРЫЙУРЛ.com', 'http://www.НОВЫЙУРЛ.com');
Изменить URL в контенте
Система WordPress сохраняет в базе данных и старые абсолютные пути ссылок сайта в базе данных. Их также нужно изменить:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://www.СТАРЫЙУРЛ.com', 'http://www.НОВЫЙУРЛ.com');
Изменить URL картинок
После миграции сайта меняются и URL картинок в медиа библиотеке. Чтобы их поменять делаем следующий SQL запрос.
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.СТАРЫЙУРЛ.com', 'src="http://www.НОВЫЙУРЛ.com');
Не забываем про GUID прикрепленных файлов.
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.СТАРЫЙУРЛ.com', 'http://www.НОВЫЙУРЛ.com') WHERE post_type = 'attachment';
Смена Meta информации сообщений
Все аналогично смене URL
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.СТАРЫЙУРЛ.com','http://www.НОВЫЙУРЛ.com');
Изменение имени пользователя “Admin”
При установке WordPress вы задаете имя и пароль для владельца сайта, администратора. Ранее по – умолчанию, система предлагала имя «Admin». Чтобы поменять имя «Admin», которое просто подарок взломщику, сделайте следующий SQL запросы к базе данных WordPress.
UPDATE wp_users SET user_login = 'НОВОЕ ИМЯ' WHERE user_login = 'Admin';
Смена пароля WordPress
Потеряли пароль для авторизации, не беда. Можно сменить пароль user (администратора) WordPress, делая следующий запрос SQL.
Примечание: MD5- способ кодирования. Новый пароль вписывается в простом, не закодированном виде.
UPDATE wp_users SET user_pass = MD5( 'НОВЫЙ ПАРОЛЬ' ) WHERE user_login = 'ВАШ ЛОГИН';
Поменять автора статей
Чтобы поменять автора “А” на автора “Б”, сразу на всем сайте и не заниматься этим вручную, достаточно сделать следующие SQL запросы к базе данных WordPress.
UPDATE wp_posts SET post_author = 'НОВЫЙ АВТОР-id' WHERE post_author = 'СТАРЫЙ АВТОР-id';
Чтобы определить “Имя автора_id” в профиле автора наведите курсор на поле “Изменить” и внизу в адресной строке, посмотрите “user_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, то об удалении спам комментариев можно не беспокоиться. Однако их можно удалить и из панели phpMyAdmin, сделав следующий 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
означает, что удаляем пустые метки.
Изменить тему сайта из phpmyadmin
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';
Источник: www.wordpress-abc.ru