WP-CLI 未使用のタグを一括で削除する

運営サイトで使用していないタグや利用頻度が低いタグが増えてきたのですが、手動で管理画面から削除するには現実的ではない数でしたので、WP-CLIのコマンドで一括で削除することにしました。

以下、削除に用いたコマンド紹介です。

IDを指定して削除

今回は利用しませんが、IDを複数して削除することも可能です。

wp term delete post_tag ID1 ID2
$ wp term delete post_tag 10758 11270
Deleted post_tag 10758.
Deleted post_tag 11270.
Success: Deleted 2 of 2 terms.

指定数以下のIDを取得して削除

以下のコマンドではタグに紐づいている投稿が2未満のタグを削除します。

シェルスクリプト

#!/bin/bash 
for x in $(wp term list post_tag --format=ids); 
do 
count_posts=$(wp term list post_tag --term_id=$x --field=count); 
if [ $count_posts -lt 2 ]; 
then wp term delete post_tag $x; 
fi; 
done
$ /bin/bash wp_term_delete.sh
Deleted post_tag 8263.
Success: Deleted 1 of 1 terms.
Deleted post_tag 8640.
Success: Deleted 1 of 1 terms.

ターミナルから実行

for x in $(wp term list post_tag --format=ids) ; do count_posts=$(wp term list post_tag --term_id=$x --field=count); if [ $count_posts -lt 2 ]; then wp term delete post_tag $x; fi; done
$ for x in $(wp term list post_tag --format=ids) ; do count_posts=$(wp term list post_tag --term_id=$x --field=count); if [ $count_posts -lt 2 ]; then wp term delete post_tag $x; fi; done
Deleted post_tag 10543.
Success: Deleted 1 of 1 terms.
Deleted post_tag 1684.
Success: Deleted 1 of 1 terms.
Deleted post_tag 21276.
Success: Deleted 1 of 1 terms.

動作環境情報

"エックスサーバー" スタンダード(旧X10)
"PHP" 7.4.13
"MySQL" 5.7
"WordPress" 5.8.1

コメント

タイトルとURLをコピーしました