WordPressのインポートで記事のIDが変わってしまったら

インポート

WordPressの記事を別のWordPressにインポートする

先日、旧ディレクトリで運用していた「まるっと。」のデータを、WordPressのインポーター機能を使って、新しいディレクトリにコピーしました。
あまり難しいことはやりたくないし、単純にデータがインポート出来ればそれでよかったのです。

ページが見つかりません!?

ところが、アクセス解析を見ると、一部の検索からの訪問に対して「ページが見つかりませんでした」という結果が返されていることに気づきました。

見つかりませんでした

記事のIDが変わってしまっている!?

もしかして、相当数の記事がアクセス不能になってるの!?
と驚いて、記事のURLを確認してみると、旧ディレクトリにあった時と、インポート先では記事のIDが変わってしまっているページを発見しました。
当サイトのパーマリンクは、/カテゴリー名/記事ID となっています。
この後ろの記事IDが変わってしまっては、URLが変わってしまうため、そりゃあGoogleにインデックスされたリンク先には記事がなくなってしまいます。

一つ見つかるということは、他にもいっぱい!?
と急に心配になりました。

解決方法はあるの?

そこで、表題のようなキーワードで検索をしてみると、WordPressのインポーター機能を使うと記事IDが変わる、みたいな情報が散在します。
なんでやねん!
なんでそんなことになんねん!
と突っ込みを入れたのは言うまでもありません。

phpMyAdminを使用して記事IDを変更する

新しいWordPressをインストールしたphpMyAdminにログインすると、IDが変わってしまっていた記事が見つかりました。
(※下のキャプチャはすでに変更後のものです)
phpmyadmin01
左にある「編集」ボタンをクリックすると、下のような画面が開きます。
IDの値が「217」になっていたので「3」に変更しました。
phpMyAdmin
その後、投稿一覧から該当記事を探し、正しいカテゴリの中に入れることで、記事のパーマリンクは元通りになりました。

https://martto.net/luxeritas-theme/howto/3/

なぜ勝手にIDが書き替わってしまったのか

ここが一番重要です。
画面のキャプチャを撮り忘れてしまったのですが、実はIDが「3」という記事が、すでにデータベース上に存在していました。
「自動下書き」という状態でしたので、サイトには表示されておらず、投稿一覧の「下書き」の中にもそんな記事は存在しませんでした。
でも、確かにデータベースにはすでに「ID=3」が存在していたため、インポートした記事に振られていたIDが自動的に他のものに書き替わってしまったのです。
もちろん、先にその不要な下書き記事「ID=3」はデータベースから削除しました。

考えられる原因

記憶は確かではありませんが、新しくWordPressをインストールした後、旧サイトから記事のインポートをする前に、サンプル記事を書いてしまったのかもしれません。
インストールした直後に入っている記事「Hello world!」の記事IDが「1」です。
そして固定ページの「サンプルページ」の記事IDが「2」です。
なので、何かその続きで記事を書くと、自動的にID「3」が振られてしまうのだと思います。

2018.05.08 追記その後、エックスサーバーでクリーンなデータベースにWordPressを自動インストールした直後に、phpMyAdminを確認しに行くと
すでに自動下書きとして保存された記事ID「3」が存在しました。

結論

以上のことから、パーマリンクに「ID」が含まれている記事を、WordPressのインポートツールでインポートする場合、新しく作ったWordPressはまっさらな状態で行うこと。
もし、新規投稿などの操作をしてしまった場合は、
事前にデータベースにログインして、余計な記事が保存されたままになっていないか、確認をしてからインポートすることが重要です。

あとがき

たまたまIDの書き替わっていた記事が、検索で上位に表示されていた記事だったため、早めに気付くことが出来ましたが
もしかすると、他にもあるかもしれません><
記事IDがインポート先のデータベースに存在したのは「3」だけのため、他は大丈夫でしょう。
しかし、素人があまり無茶なことをするもんじゃありません。
が、失敗しないと気づかないのも事実です。
なので、失敗してもいいことにします^^v

1

error

Posted by どらみ