ミサを削除し、私は、タグ1000年代を持っていると私は単純にX回以上使用されていないすべてのタグ...つまり5回を削除したいと思います。質量は不人気タグ <p></p>を削除不人気タグ
これを行う簡単な方法を知っている人はいますか?まっすぐなSQLでもまったくロック!
ミサを削除し、私は、タグ1000年代を持っていると私は単純にX回以上使用されていないすべてのタグ...つまり5回を削除したいと思います。質量は不人気タグ <p></p>を削除不人気タグ
これを行う簡単な方法を知っている人はいますか?まっすぐなSQLでもまったくロック!
$x = 5; // set this to any number
$sql = "SELECT `name` FROM `wp_terms`";
$result = mysql_query($sql);
$count = array();
while($row = mysql_fetch_assoc($result))
{
$count[$name]++;
}
foreach($count as $key = $value)
{
if($value < $x)
{
$sql2 = "DELETE FROM `wp_terms` WHERE `name` = '". $key ."'";
$result2 = mysql_query($sql2);
}
}
これを行うにはより効率的な方法がありますが、これは機能します。
編集:まずバックアップを作成してください。私は、その表がタグに排他的であることは完全にはわかりません。
SQLコマンドを使用するのが最善の方法です。テーブルwp_terms
、wp_term_relationships
、およびwp_term_taxonomy
は興味深いものです。 WordPressはwp_term_taxonomy.count
との関係を追跡します。だから、これは人生を楽にします。
-- remove terms
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'tag' AND count <= 5;)
-- remove all relationships
DELETE FROM wp_term_relationships WHERE term_taxonomy_id IN (SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE taxonomy = 'tag' AND count <= 5;)
-- remove taxonomy entry
DELETE FROM wp_term_taxonomy WHERE taxonomy = 'tag' AND count <= 5;
注:私は強く、上記のコマンドを実行する前に、これらのテーブルのバックアップを作成することをお勧め。
Jasons答えは私のインストール以外で働いていた、タクソノミーの名前は「post_tag」ではない「タグ」
別の答えを提供するのではなく、答えとアップヴォートについてコメントするのがベストプラクティスです。 –
アメージング、超高速応答のおかげでたくさんのだった...私は今、それらを試してみますよ。ありがとうございます。 –
私は、Jason McCrearyの例を使用してコードを変更したいと思うでしょう(または単にクエリを実行して何が起こるかを見てください)。 1つのデータベースからではなく、3つのレイヤーで行を削除する必要があるようです。 – Citizen
あなたは 'wp_terms'だけから削除することができますが、同じ名前の別のタグを追加した場合、データの整合性と問題が貧弱になります。 –