wordpressのページIDをDB内で変更する

ウェッブマスターツールのエラーページを見ながら直せるものは直しています。500ものファイルにエラーが出ます。

旧mediawiki時代のページは全滅なのでなかったことにしたのが悪影響しています。mediawikiは好きだけれど、うちのサーバーで使うには重い。ファイル数が多すぎるし更新が手動でこの先使い切る自信がないのでちがうwikiに変えます。

今日はワードプレスのページを修正。

静的なページは「大洗」のところがなんだかぐちゃぐちゃしているので直したい。全部ひとりWikiか全部wordpressか迷う。静的なHTMLで組んでいること、固有名詞なのでwikiにいれようかなあ。写真が多くて移設が面倒なので作業は先延ばしです。

ほかのすぐ直せるカメラスタビライザーは現在1階層のみにファイルを置いて運用しています。以前、機材と道具のページのみ2階層にした残骸が落ちててエラーが出てしまいました。こちらは該当ページに自動ジャンプを仕込みます。Googleのインデックスに入った後に勝手に削除するとこういうエラーが出ます。回避する方法は、消えたページに自動ジャンプを仕込むか301リダイレクトが正しい対策です。なにより削除は慎重に。作るときも慎重に。

丁度ブログに移行する直前のHTMLでむりぐり書いていた日記の1枚が海外のフォーラムからリンクされています。中身はブログに入れ直したので、ブログの該当ページに自動ジャンプする内容を被リンクページに設置しました。結構面倒ね。

問題はワードプレスでつくったページ。ページIDはデフォルトなので、数字で呼び出されます。そして、wordpressの数字で呼び出すページIDは自分その数字を自由に決められません。

削除したページが存在として無くなってしまうのです。

HTMLならアップし直せば作れますけれど、データベースに入れているキーの数字ですから、話は複雑です。削除してすぐならアンドゥで復活できるかもしれませんが、三千番台の記事をいまさら戻せそうにない。

ならば手動で作ることにします。

WordPressをインストールしたフォルダ名を変更する方法 | 西沢直木のIT講座
いちおうプラグインでURLを変える方法もありますが私が試した限り残念ながらURLは変更できず。

こちらを参考に、データベースを直接修正して表示に成功しました。
[WordPress] 投稿IDを手動で変更 | きほんのき
まずはバックアップ。ハングアップするのでSQLでファイルが保存出来ずwordpressのエクスポート機能でデータを保持して置きます。

新規作成で新しいページ(?p=XXXX)を作ります。

次にデータベースにログイン。記事が収まるwp_postsでID:XXXXを探します。

編集ボタンを押してデータベース上でIDと、URLの項目を(XXXX->YYYY)と書き変えます。

これだけでは不十分。wordpressのデータベースは、複数テーブルを跨いで違う場所にも同じIDを置いています。サーバーでは、見えることろを変更して保存したら、データベースが気を利かせて関連ページのID一覧を出してくれました。そこで表示に必要な位置の数字が直っていないと教えてもらい、修正してようやく表示できました。

いつ壊れるかわからないデータベースは直接いじりたくありません。今回は特別。

今後は古い、内容のない記事も番号の問題を回避するため残すことにします。内容が薄いのなら修正か追記で対処して、消さないようにします。もうこりごりです。