Полезные SQL запросы и хаки для wordpress блога
Не смотря на то, что система wordpress позволяет решать много различных задач, иногда возникает необходимость оперативного вмешательства для быстрого исправления конкретных проблем. В таких случаях лучше всего работать с базой данных напрямую. Все это осуществляет с помощью специальных SQL запросов, некоторые из которых сегодня предлагаю вам рассмотреть (вторую часть статьи найдете тут).
Во-первых, для начала пару слов о том, как же эти самые SQL запросы выполнять. Для этого вам понадобится популярная программа PhpMyAdmin – которая позволяет работать с базой данных в приятном графическом интерфейсе. На большинстве хостингов она установлена, поэтому переживать по этому поводу не стоит.
Для тех, кто все равно не хочет использовать сторонние разработки, пусть даже очень распространенные и надежные, можно посоветовать найти какие-то плагины под WordPress, которые бы позволяли выполнять SQL запросы – например, SQL Executionner или похожие модули. Хотя, в принципе, тут нужно быть на 100% уверенным в нем или все же воспользоваться стандартным инструментом PhpMyAdmin. Также в качестве альтернативы при решении тех или иных задач можно поискать соответствующие модули, например чтобы изменить типы записей пригодится Post Type Switcher (без необходимости правки БД).
В любом случае нужно быть очень аккуратным когда работаете с базой данных! А еще лучше предварительно сделать бэкап wordpress блога кстати делается в том же PhpMyAdmin – читаем статью. Ну, а теперь собственно полезные SQL запросы и хаки для wordpress.
Изменяем пароль блога
Некоторые думают, что с ними никогда такого не случится, но порой люди забывают пароль от своего блога либо просто теряют его. В таком случае мы можем создать новый прямо через обращение к базе данных MySQL database. Для этого используем следующий запрос, где, кстати, функция MD5() преобразовывает указанный нами новый пароль (user_pass) в зашифрованный формат MD5 hash.
UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1; |
Меняем автора поста wordpress
Многие новички в блоггинге используют в работе старый аккаунт «admin», что идет по умолчанию вместо создания нового с их настоящим именем. Кроме того это полезно для безопасности системы. В любом случае, после некоторого времени вы можете передать все написанные статьи от старого админка к новой учетной записи с помощью SQL запроса:
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; |
Здесь вместо AUTHOR_ID вы должны подставить ID нового и старого аккаунтов. Кстати, видел в wordpress такую штуку, что при удалении аккаунта система спрашивает куда делать все его тексты — и при этом можно выбрать нового админа.
Удаляем ревизии постов и их мета данные
Ревизии для постов достаточно удобны, если вы ведете блог с несколькими авторами, однако при этом они создают слишком много записей в базе данных. Например, если у вас в блоге 100 статьей, для каждой из которых создается по 10 ревизий, то в итоге получится 1000 строк для таблицы wp_posts, где только 100 реально нужны. Выполнив следующий SQL запрос вы удалите все ревизии и мета данные (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); |
Пакетное удаление спам комментариев
Представьте ситуацию, когда вы возвращаетесь из отпуска, где длительное время не было доступа в интернет. Если при этом вы не установили антиспам плагин Akismet, то в зависимости от популярности блога можете получить от 1000 до 10000 комментариев для модерации. Разгребать все это придется чуть ли не целый день, а можно просто удалить комментарии, которые не были апрувлены автоматически.
DELETE from wp_comments WHERE comment_approved = '0'; |
Тут, у автора, наверное установлена опция «пропускать» все комментарии у автора, который имеет предварительные апрувленные комментарии. В любом случае, нужно установить плагин Akismet.
Находим неиспользуемые теги
Теги записываются в таблицу базы данных wp_terms. Если по каким-то причинам тег был создан, но не используется, то он все равно хранится в таблице. Данный SQL запрос позволит найти теги из таблицы wp_terms, которые не используются в блоге и которые можно будет спокойно удалять.
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; |
В принципе, много чего с метками можно сделать и через плагин simple tags. Вообще, как я и сказал вначале, система вордпресс позволяет решать многие задачи, но иногда намного быстрее все сделать простыми SQL запросами к базе данных. Хотя при этом нужно знать, что и как делать, а также не забывать про бэкапы БД.
P.S. Постовой. Нас сайт подскажет где купить пальто в Киеве.
комментариев 10 к статье “Полезные SQL запросы и хаки для wordpress блога”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Оптимизируем WordPress header и удаляем лишний код (5,19 из 7, голосов - 43)
- Как создать пункт меню без ссылки в wordpress (6,39 из 7, голосов - 23)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог (6,14 из 7, голосов - 21)
- Выполнение jQuery скриптов при выборе вариаций товаров в WooCommerce (3,96 из 7, голосов - 26)
- Хаки для вариаций товаров в WooCommerce (5,00 из 7, голосов - 20)
- Вывод текста в блоге только на главной (6,85 из 7, голосов - 13)
- Как убрать category в WordPress категориях — зачем это делать, плагины для реализации (5,31 из 7, голосов - 16)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
Из раздела поста под названием «Удаляем ревизии постов и их метаданные» команда SQL глючная. Вот какую ошибку выдает — «ERROR 1109 (42S02): Unknown table ‘b’ in MULTI DELETE»
Правильная команда SQL для чистки БД от ревизий постов следующая — DELETE FROM wp_posts WHERE post_type=’revision’ (проверено на собственном блоге) :)
Очень полезно, особенно про автора блога, большое спасибо!
Самостоятельный Путешественник, странно, конечно, что не работает, но я признаться не пробовал — поэтому поверю. Там просто не только удаление ревизий, но еще всех их метаданных из других таблиц. Из-за этого она и получилась такая большая, если просто удалить ревизии, то действительно подойдет
DELETE FROM wp_posts WHERE post_type=’revision’
Пост полезный, но что бы описать все запросы,которые можно сорудить с бд блога — прийдется потратить много времени)
Полезная статья. Я бы все таки посоветовал использовать плагин WP-DBmanager. Он и сделает бэкап и оптимизирует и запрос выполнит )
Реально полезно. Взял на вооружение…
Так умно написано, а в комментах куча спама, вот например
micro 28.05.2010
Очень полезно, особенно про автора блога, большое спасибо!
Тут про автора блога ничего не сказано=))
установите akismet
Виктор, у меня установлен не только akismet:) Это «умные спамеры», ссылку от меня они вряд ли получат ибо нехорошо, да и еще пиарят всякую гадость…
Удалить спамерские комментарии можно и без обращения к базе данных. Рядом со списком этих самых комментариев, которые Akismet пометил как спам, есть флажок, который отвечает за выделение всех элементов в списке. После этого достаточно кликнуть по кнопке Очистить спам, и проблема решена малой кровью.