last update

WordPressの投稿IDなどを手軽に変更できるプラグイン「Search and Replace」

SearchAndReplace_3_sh

WordPress でバックアップ時点以降に投稿した記事を手動復元する場合、投稿IDをどうやって元通りにするかが問題になりますが、これを簡単に出来るプラグイン「Search and Replace」を紹介します。

投稿IDだけでなく、タイトル・投稿内容・タグ・カテゴリの一括置換など、いろんな用途のデータベース検索・リプレースをしてくれる大変便利なプラグインです。

プラグインのダウンロードはこちらから。

または、ダッシュボードのプラグイン新規追加画面から「Search and Replace」を検索しても良いでしょう。

万が一の際に覚えておくと非常に便利なプラグインと思います。

使い方

※このプラグインは容赦なくデータベースの内容を書き換えるので、処理前にはバックアップを取っておき、意図しない結果になった場合は、確実にリカバリできる状態で使う事をオススメします。

インストール&有効化後は、ダッシュボードの「ツール」→「Search & Replace」から使います。

2014-02-22_23h34_29

投稿ID(post_id)を変更するには、「ID」にチェックを入れ、「Search for」に現在の投稿ID、「Replaced with」に新しい投稿IDを入力し、「GO>」を押します。

SearchAndReplace_1_sh

たったこれだけであっけなく Post ID が変わってしまいます。

なお、全ての記事でそうだったわけではありませんが、一部、画像ファイルが添付されている投稿で、画像の紐付けとかアイキャッチ画像の設定が引き継がれないケースがあったような。

問題ない場合もあったので、一応、気にはした方がよいかもしれません。

他にも、投稿内容の content や、title、各種メタデータ、コメント、comments author、カテゴリやタグ、カテゴリの説明、ユーザIDなどの置換が可能で、それぞれ対象テーブルとフィールドが書かれているので、ある程度 WordPress 内部の知識があるならなかなか使えるのではないかと思います。

投稿IDのオートインクリメントはどうなるの?

今回の方法で「大きな番号の投稿ID」にした場合、Wordpress が採番する投稿IDとの衝突が心配でしたが、振った番号以降を自動的に使ってくれるようです。(Wordpress 3.8.1-ja で確認)

どこでそういう処理をやってくれているのかは分かりませんが、これを気にしなくてよいのは大変助かります。

余談(なんでこんなものが必要になったのか)

投稿IDを変更。なんて、何か怪しい事でもしてるんじゃ?と思われるかもですが、実は今朝、使っているVPSサーバのディスクレイテンシがまたしても跳ね上がり、そのままダウン。他に方法がなかったので仕方なく強制再起動したところ、「root fs をマウントできない」みたいな衝撃的なメッセージが…。

物理サーバなら多少はがんばろうかとも思う所ではありますが、VPSのGRUBをリモートからいじった経験はさすがになく、また、不測の事態の可能性も考慮すると、GRUBをいじる云々というアプローチでは復旧時間が読めない気がしたので、これは別サーバを建てた方が早かろう。と早々に判断。

バックアップからリカバリして、バックアップ後の差分記事はこの方法で復元した。という経緯があったのです。

実は、後から良く良く調べてみると、起動時のカーネル選択で旧バージョンを選ぶとか、VPSの管理画面から仮想光学メディアを入れられそうな予感がしたり…とかとか、他にも対策はあったっぽいのですが…。

今回は、早朝5時くらいに気がついて、ちょうどアクセスが少ない時間でしたし、いずれにしてもサーバーを移転したいと思っていたところなので、ちょうどよいタイミングだったかもしれません。

思わぬ所で全データ喪失というディザスタリカバリのテストが出来ましたし、これはこれでまぁ良かったのかも。

コメントを記入