В этом уроке покажу вам довольно удобный SQL-запрос, которые позволит удалить все, абсолютно все мета-записи c указанным значением meta_key
из таблиц с мета-данными, аля:
wp_postmeta
, wp_termmeta
, wp_sitemeta
, wp_usermeta
, wp_commentmeta
, ну и так далее (хотя на сегодняшний день вроде больше нет других таблиц в WordPress).
Предположим, вы использовали плагин, который при редактировании каждого поста добавлял в него какие-то мета-данные, а при удалении не стал их автоматически удалять. Либо вы сами разрабатываете свой плагин и хотите в uninstall.php прописать автоматическое удаление всего, что плагин насоздавал.
Так вот, подобное удаление выполняется SQL-запросом:
DELETE FROM `wp_postmeta` WHERE meta_key = 'not_true_meta_key'
Ясно дело, что надо не забывать менять префикс wp_
на тот, который используете в своей базе данных, ну да и вполне возможно, что вы выполняете этот запрос не для постов, а ну для пользователей например, тогда меняем название таблицы:
DELETE FROM `wp_usermeta` WHERE meta_key = 'not_true_meta_key'
Для того, чтобы запускать SQL запросы непосредственно из PHP (помните, я же говорил про файл uninstall.php
буквально только что), то тогда активно пользуемся объектом $wpdb.
global $wpdb; $wpdb->query( "DELETE FROM `wp_usermeta` WHERE meta_key = 'not_true_meta_key'" );
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.