Web5X Блог

Блог о создании сайта, конструкторе сайтов

Web5X Блог

Блог о создании сайта, конструкторе сайтов

Поиск по блогу

Удаление произвольных полей и мусора после плагинов WordPress

Обновлено: 15.12.2023
0 комментариев

Когда мы пользуемся произвольными полями или плагинами которые их оставляют (а оставляют почти каждый) то в базе после некоторых манипуляций появляются "мусор" из метаданных. Конечно, если сайт у вас маленький и вас это не беспокоит, то можно просто не заморачиваться и не вспоминать. Но часто люди ищут информацию про удаления произвольных полей по той причине, что они помешали каким либо образом, например просто отображаются в выпадающем списке.

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

Какие то плагины удаления произвольных полей

Да, это первое что приходит в голову, когда задумываемся про удаление произвольных полей из множество записей. И да, плагины есть, но нормальных единицы.

Edit Custom Fields - это плагин удаления произвольных полей. Помогает удалить произвольные видимые поля (да, есть еще невидимые) .

Как видно из скриншота, то тут все просто. Выбираем ненужное произвольное поле, нажимаем удалить и готово. Данный плагин может удалить видимые произвольные поля.

Post Meta Data Manager - а это плагин другого типа. Он позволяет отобразить все мета данный у записи или страницы, прямо при редактировании их.

Вот так это выглядит на страницы редактирования. Тут мы видим все мета поля, которые относятся к данной записи. Это бывает полезно, чтобы заметить что то лишнее.

Например, при управлении полями с помощью плагина ACF у нас создается произвольное поле и стандартно мы может увидеть его с помощью данного плагина. Но в дополнение к стандартному произвольному полю, ACF добавляет мета данные вида _произвольное-поле т.е тоже название, но с нижнем подчеркиванием. И когда мы захотим удалить поле из ACF и потом удалим его из записи, мусор все равно останется в базе. И этот мусор иногда приходится удалять.

Удаление полей с помощью SQL запроса

Только ленивый в интернете про это не сказал, но всех отправляют непонятно куда . Давайте проще. Если у Вас нет доступа к phpmyadmin и вообще не понятно как на хостинге найти это. То лучше установить какой нибудь плагин (на время), например Database Management tool — Adminer . Этот плагин даст доступ к базе данных для манипуляций. И вот в нем будем делать запросы на удаление и просмотр.

Для поиска произвольных полей, достаточно запустить запрос

SELECT * FROM wp_postmeta WHERE meta_key = 'moi-pole'

Данный запрос отобразит список из данных для данного поля учетом данных из ревизионных копий записи.

Посмотрели, убедились, что это то что надо и меняем запрос на удаление.

DELETE FROM wp_postmeta WHERE meta_key = 'moi-pole'

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

Как показать произвольные поля при редактировании, если они скрыты плагином ACF

Да, плагин ACF в отличие от других, скрывает вывод стандартных произвольных полей при редактировании, так как считает, что он главный. И это хорошо, когда сайт новый, но бывает так, что сайт старый и поля уже используются и нужно пользоваться параллельно и теми и другими. Поэтому для этого есть финт в виде кода который нужно добавить например в function.php или в плагин php сниппетов . Я обычно использую Code Snippets

add_filter('acf/settings/remove_wp_meta_box', '__return_false');

Если при использовании плагина для исполнения php кода не сработало, то скорей всего нужно у сниппета понизить приоритет, например до 1 . Если все хорошо, то мы увидим стандартный вывод полей, которые при необходимости можем удалить. Удобно, когда нужно в одной записи удалить поле.. когда просто решил что то поменять. Но не забываем, поля с нижним подчеркиванием не отображаются тут.

Остались вопросы?
Листай ниже или клик по ссылке выше. Там можно задать вопрос или почитать комментарии других.
Написать комментарий

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

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