WordPress: 10+ SQL запросов облегчающих жизнь

6 комментариев

Рубрика: Wordpress, Статьи

wordpress development/Wordpress: 10+ SQL запросов облегчающих жизнь (wordpress logo 100x100)WordPress замечательный инструмент для ведения персонального блога. Практически любую задачу можно выполнить через плагины. Но иногда проще и быстрее выполнить SQL запрос. О некоторых таких запросах, облегчающих жизнь, мы поговорим в этой статье.

Для начала о том как запустить SQL запросы. Так как мы говорим  о  WordPress, то в нашем распоряжении есть такой инструмент как plugins.

SQL Executionners – плагин позволяет запускать SQL Queries для вашего WordPress блога

WP-DBManager – мощный плагин, позволяющий вам полностью контролировать всю работу с DB.

Также SQL можно запускать и в PhpMyAdmin, который в большинстве случаев уже установлен.

Ну а теперь перейдем непосредственно к SQL

Изменение пароля

Если вы забыли ваш admin пароль, то самым быстрым решением будет создать новый. Обратите внимание на использование функции MD5, которая шифрует ваш пароль

UPDATE 'wp_users' SET 'user_pass' = MD5('ВАШ_НОВЫЙ_ПАРОЛЬ_ЗДЕСЬ') WHERE 'user_login' ='admin' LIMIT 1;

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

Если у вас возникла необходимость перенести все записи одного пользователя вашего блога к другому, то здесь на помощь приходит следующий SQL

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

Удаление версий и связанных с ними meta-данных

Автосохранение версий мощный инструмент WordPress. Однако они утяжеляют базу данных. Например, если у вас есть 100 записей, и для каждой из них имеется 10 версий, то в таблице записей хранится 1000 строк, при том что используется всего 100.

Следующий SQL запрос удалит все автосохраненные версии и их meta-данные (custom fields др.)

DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);

Удаляем spam за раз

Чтобы одним махом удалить все spam-комментарии выполняем

DELETE from wp_comments WHERE comment_approved = '0';

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

Если вы когда-то создали тэг, но так им ни разу не воспользовались, то его можно смело удалить. Чтобы найти такие тэги запускаем 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;

Поиск и замена данных

Часто возникает необходимость изменить текст во всех записях вашего блога. Используйте следующее SQL предложение

UPDATE table_name SET field_name = replace( field_name, 'СТАРЫЙ_ТЕКСТ', 'НОВЫЙ_ТЕКСТ' ) ;

Только не забудьте заменить table_name – на нужную таблицу, и field_name – колонку в которой заменить текст

Email всех ваших комментаторов

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

SELECT DISTINCT comment_author_email FROM wp_comments;

Отключаем все плагины сразу

Чтобы отключить все плагины, установленные у вас в WordPress, запускаем

UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

Удаление все тэгов

Тэги и категории хранятся в таблице wp_terms. И если вам вдруг понадобится удалить все тэги, то будет недостаточно просто очистить эту таблицу. Необходимо также удалить все связи тэгов с записями.

DELETE a,b,c
FROM
	database.prefix_terms AS a
	LEFT JOIN database.prefix_term_taxonomy AS c ON a.term_id = c.term_id
	LEFT JOIN database.prefix_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (
	c.taxonomy = 'post_tag' AND
	c.count = 0
	);

Поиск не используемых meta данных

Meta-данные создаются различными плагинами и custom-fields. Это мощный инструмент, дающий гибкость вашему блогу. Однако со временем они разрастаются и не всегда используются. Чтобы очистить БД от не используемых meta-данных, запускаем SQL

SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;

Закрыть комментарии к старым записям

Не знаю зачем может это понадобиться, но можно закрыть комментирование записей, сделанных до определенной даты. Следующий SQL запрос запрещает комментирование записей старше 01.01.2009

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

Замена URL сайтов комментатора

Чтобы заменить URL сайта какого-либо комментатора используйте

UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://oldurl.com', 'http://newurl.com' );

Замена email комментатора

Чтобы изменить email какого-либо комментатора используйте

UPDATE wp_comments SET comment_author_email = REPLACE( comment_author_email, 'old-email@address.com', 'new-email@address.com' );

Комментарии: 6 комментариев

Oleg Kalachov

А зачем же убивать все урлы комментаторов, я понимаю когда спам, а так как то не очень хорошо получается, может тогда из формы сразу поле убрать?

azat

я просто тупо значение этого поля с 200 поменял на 0 и все нормально стало))))

azat

DELETE from wp_comments WHERE comment_author_url = ’0′;

azat

а как будет выглядить запрос, чтоб все URL комментаторов удалить. :)

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

Компьютерщик

А чем SQLAdmin не подходит? У мненя в ВордПрессе плагинов уже туча стоит.

Оставить комментарий

Get Adobe Flash playerPlugin by wpburn.com wordpress themes