Как удалить все неиспользуемые метки из WordPress

Сегодня мы с вами посредством парочки простейших запросов на SQL очистим наши сайты на WordPress от тех меток, которыми не была помечена не одна запись блога. Эта проблема может быть актуальной для очень старых веб-проектов, где такого мусора может накопится предостаточно в системной базе данных движка. Итак, давайте попробуем / заставим CMS похудеть, так сказать.

Вывести пустые теги можно следующим образом, префикс wp_ может быть любым в зависимости от того, что прописано в config.php:

SELECT * 
FROM wp_terms AS wt
INNER JOIN wp_term_taxonomy AS wtt ON wt.term_id = wtt.term_id
WHERE wtt.taxonomy =  'post_tag'
AND wtt.count =0

Ну, а для того, чтобы их удалить придется дописать SQL запрос и немного попрограммировать на API WordPress до такого вот вида:

<?php
global $wpdb;
$wpdb->query("
DELETE a,c
FROM
	$wpdb->terms AS a
	LEFT JOIN $wpdb->term_taxonomy AS c ON a.term_id = c.term_id
	LEFT JOIN $wpdb->term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (
	c.taxonomy = 'post_tag' AND
	c.count = 0
	)
");
?>

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





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.