Как удалить все мета-записи с определённым ключом (meta_key) из базы данных

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

В этом уроке покажу вам довольно удобный SQL-запрос, которые позволит удалить все, абсолютно все мета-записи c указанным значением meta_key из таблиц с мета-данными, аля:

ну и так далее (хотя на сегодняшний день вроде больше нет других таблиц в 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'" 
);
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии