WordPress タイトルやスラッグの一括修正、CSVで管理し、まとめて変更

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はとても頼りになります。
大量の記事を一気に直したいときに、ぜひ試してみてください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント