WordPressを長く運営していると、記事タイトルやスラッグを後から直したくなることがありませんか?
たとえば…
- タイトルを仮置きのまま公開してしまった記事
- 日本語URLのまま作ってしまったスラッグ
- 記事整理のタイミングで命名規則を揃えたいとき
管理画面から一つずつ修正するのは現実的ではありません。
そんなときに役立つのが wp-cli と CSV の組み合わせ です。
私は実際に「数百件のスラッグを英数字に統一」したことがあるのですが、ExcelでCSVを作って wp post update を流すだけで、一晩かけてやるはずの作業が数分で完了しました。
基本となる wp post update
wp-cli には投稿を更新する wp post update コマンドがあります。
wp post update <ID> --post_title="新しいタイトル" --post_name="new-slug"
--post_title→ 投稿のタイトルを更新--post_name→ 投稿のスラッグを更新
これを一件ずつ実行すれば確かに修正できます。
でも件数が多いと手作業は厳しい…。そこでCSVを使います。
CSVで修正データを管理する
まずは対象の投稿をCSVでエクスポートします。
例:ID、タイトル、スラッグを出力
wp post list --fields=ID,post_title,post_name --format=csv > posts.csv
このCSVをExcelやスプレッドシートで開いて、修正したいタイトルやスラッグを書き換えます。
ID… 投稿の識別子(絶対に変更しない)post_title… 新しいタイトルpost_name… 新しいスラッグ
保存するときは UTF-8 形式にしておくと安心です。
CSVを使って一括更新するスクリプト
CSVを整えたら、シェルスクリプトでループして更新します。
#!/bin/bash
# 1行目のヘッダーを除外して読み込み
tail -n +2 posts.csv | while IFS=, read -r ID TITLE SLUG
do
echo "更新中: ID=$ID → TITLE=$TITLE, SLUG=$SLUG"
wp post update "$ID" --post_title="$TITLE" --post_name="$SLUG"
done
実行権限を付与して走らせればOK。
chmod +x update-posts.sh
./update-posts.sh
これでCSVに書いた修正が一気に反映されます。
実際に使ってみて感じたこと
管理画面だと「クリックして編集 → 保存」を繰り返すしかないのですが、CSV管理だと一覧で眺めながら修正できるので抜け漏れがなくなります。
特にスラッグは統一感を持たせたいときに便利です。
ただ、実際にやってみて注意すべき点もありました。
- 誤ったIDを消さないこと → 1桁ずれると別の記事が書き換わる
- 文字コードに注意 → 特に日本語タイトルはUTF-8で保存
- 本番前にテスト → 本番サイトに流す前にステージングで試すと安心
まとめ
wp post updateでタイトルやスラッグを修正できるwp post listでCSVを出力し、Excelなどで一括編集- スクリプトでループすれば一括更新が可能
- 実行前には必ずバックアップやテスト環境で検証を!
記事整理やSEO対策で「まとめて修正したい」ときに、CSV+wp-cliはとても頼りになります。
大量の記事を一気に直したいときに、ぜひ試してみてください。

コメント