Порой вместо того что бы долго и нудно что-то исправлять через функционал WordPress, проще сделать изменения напрямую в базе данных с помощью phpMyAdmin (рус). Сегодня рассмотрим несколько таких ситуаций и запросов.
Перед тем как начать:
- Сделайте бекап базы с помощью программы типа WP-DBManager.
- В данной статье все запросы написаны с учетом префикса таблиц wordpress по умолчанию wp_.
УДАЛЯЕМ ВСЕ КОММЕНТАРИИ С ОПРЕДЕЛЕННЫМ URL
Допустим спамер добавил по одному комменту на каждую статью вашего блога.
1 |
DELETE from wp_comments WHERE comment_author_url LIKE "%тут вставить спам url%" ; |
УДАЛЯЕМ ВСЕ ТРЕКБЕКИ
Как по мне, трекбеки довольно бесполезная вещь, удаляем их простым запросом.
1 |
DELETE FROM wp_comments WHERE comment_type="trackback"; |
ЗАКРЫВАЕМ ТРЕКБЕКИ СРАЗУ НА ВСЕХ ЗАПИСЯХ
Вместо того что бы удалять их, сразу отключим их и все.
1 |
UPDATE wp_posts SET ping_status = 'closed'; |
УДАЛЯЕМ ВСЕ НЕ ОДОБРЕННЫЕ КОММЕНТАРИИ
Лень проверять все коменты, удали их.
1 |
DELETE from wp_comments WHERE comment_approved = '0'; |
УДАЛЯЕМ ВСЕ КОММЕНТАРИИ ОТМЕЧЕННЫЕ КАК СПАМ
Лень всему голова.
1 |
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam'; |
УДАЛЯЕМ ВСЕ ВЕРСИИ ЗАПИСИ И СВЯЗАНУЮ С НИМ ИНФОРМАЦИЮ
Это значительно облегчит вашу базу, некоторые эксперты рекомендую это делать раз в 2-4 месяца.
1 2 |
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'; |
УДАЛЯЕМ НЕИСПОЛЬЗОВАННЫЕ ШОРТКОДЫ В КОНТЕНТЕ ЗАПИСЕЙ
Шорткоды очень прикольная штука, но порой они устаревают и вместо ручного редактирования записей просто используйте запрос. В нашем примере мы удаляем устаревший шорткод .
1 |
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ; |
ЗАМЕНЯЕМ СЛОВО В ЗАПИСЯХ НА ДРУГОЕ
Допустим вы ошиблись в написании термина или вам необходимо исправить ссылку.
1 |
UPDATE wp_post SET post_content = replace(post_content, 'старое_слово', 'новое_слово' ) ; |
ДОБАВЛЯЕМ ПРОИЗВОЛЬНОЕ ПОЛЕ ВО ВСЕ ЗАПИСИ
Если часто используете произвольные поля, то проще добавить их скопом во все записи.
1 2 3 4 5 6 |
INSERT INTO wp_postmeta (post_id, meta_key, meta_value) SELECT ID AS post_id, 'МоеПроизвольноеПоле' AS meta_key 'мое_значение' AS meta_value FROM wp_posts WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'МоеПроизвольноеПоле') `` AND post_type = 'post'; |
УДАЛЯЕМ ОЧЕНЬ СТАРЫЕ ЗАПИСИ
Зачем на сайте посты столетней давности которые изобиловают кучей нерабочих линков.
1 |
DELETE FROM wp_posts WHERE post_date < '2010-01-01 00:00:00' AND post_status = 'publish' |
ПОЛУЧАЕМ СПИСОК EMAIL-ОВ КОММЕНТАТОРОВ
По этическим соображениям этого делать не стоит, но вдруг вам это необходимо.
Для избежания получения дубликатов в запросе используем DISTINCT
1 |
SELECT DISTINCT comment_author_email FROM wp_comments; |
ПРИСВАИВАЕМ ВСЕ СООБЩЕНИЯ НОВОМУ АВТОРУ
Сменился автор или вы захотели писать от имени другого автора (а не от админа)
1 |
UPDATE wp_posts SET post_author = 'id-нового-автора' WHERE post_author = 'id-старого-автора'; |
ОБНОВЛЯЕМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ
Быстрый способ обновить пароль пользователю, не забудьте заменить «имя_пользователя«.
1 |
UPDATE wp_users SET user_pass = MD5( 'новый_пароль' ) WHERE user_login = 'имя_пользователя'; |
ДЕАКТИВИРУЕМ ВСЕ ПЛАГИНЫ
Что-то пошло не так и в какое-то утро неизвестный плагин блокирует работу сайта, решение проблемы отключить все плагины и дальше уже разбираться, кто виноват.
1 |
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins'; |
УМЕНЬШАЕМ РАЗМЕР БАЗЫ УДАЛИВ TRANSIENTS
Для начала краткая информация что такое transients. Вещь нужная и полезная, но если сайт начинает тормозить…
1 |
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%'); |
ИЗБАВЛЯЕМСЯ ОТ НЕИСПОЛЬЗУЕМЫХ ТЕГОВ
После чистки базы от старых постов, могут остаться теги, которые вы уже не используете.
1 2 3 |
DELETE 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; |
МЕНЯЕМ ВСЕ ВАШИ URLS/ДОМЕННОЕ ИМЯ
Вы решили переехать на новый домен и вам надо сменить ваш доменный URL.
1 2 3 |
UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsite.com', 'https://roboteye.biz') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com','https://roboteye.biz'); UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'https://roboteye.biz'); |
Удачи вам!