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
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Чтобы вырастить плодоносящий сайт - его полезно регулярно поливать и удобрять с помощью рекламы и оптимизации Компания "RedLine" |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.