WordPressのインポートで記事のIDが変わってしまったら
WordPressの記事を別のWordPressにインポートする
先日、旧ディレクトリで運用していた「まるっと。」のデータを、WordPressのインポーター機能を使って、新しいディレクトリにコピーしました。
あまり難しいことはやりたくないし、単純にデータがインポート出来ればそれでよかったのです。
ページが見つかりません!?
ところが、アクセス解析を見ると、一部の検索からの訪問に対して「ページが見つかりませんでした」という結果が返されていることに気づきました。
記事のIDが変わってしまっている!?
もしかして、相当数の記事がアクセス不能になってるの!?
と驚いて、記事のURLを確認してみると、旧ディレクトリにあった時と、インポート先では記事のIDが変わってしまっているページを発見しました。
当サイトのパーマリンクは、/カテゴリー名/記事ID となっています。
この後ろの記事IDが変わってしまっては、URLが変わってしまうため、そりゃあGoogleにインデックスされたリンク先には記事がなくなってしまいます。
一つ見つかるということは、他にもいっぱい!?
と急に心配になりました。
解決方法はあるの?
そこで、表題のようなキーワードで検索をしてみると、WordPressのインポーター機能を使うと記事IDが変わる、みたいな情報が散在します。
なんでやねん!
なんでそんなことになんねん!
と突っ込みを入れたのは言うまでもありません。
phpMyAdminを使用して記事IDを変更する
新しいWordPressをインストールしたphpMyAdminにログインすると、IDが変わってしまっていた記事が見つかりました。
(※下のキャプチャはすでに変更後のものです)
左にある「編集」ボタンをクリックすると、下のような画面が開きます。
IDの値が「217」になっていたので「3」に変更しました。
その後、投稿一覧から該当記事を探し、正しいカテゴリの中に入れることで、記事のパーマリンクは元通りになりました。
なぜ勝手にIDが書き替わってしまったのか
ここが一番重要です。
画面のキャプチャを撮り忘れてしまったのですが、実はIDが「3」という記事が、すでにデータベース上に存在していました。
「自動下書き」という状態でしたので、サイトには表示されておらず、投稿一覧の「下書き」の中にもそんな記事は存在しませんでした。
でも、確かにデータベースにはすでに「ID=3」が存在していたため、インポートした記事に振られていたIDが自動的に他のものに書き替わってしまったのです。
もちろん、先にその不要な下書き記事「ID=3」はデータベースから削除しました。
考えられる原因
記憶は確かではありませんが、新しくWordPressをインストールした後、旧サイトから記事のインポートをする前に、サンプル記事を書いてしまったのかもしれません。
インストールした直後に入っている記事「Hello world!」の記事IDが「1」です。
そして固定ページの「サンプルページ」の記事IDが「2」です。
なので、何かその続きで記事を書くと、自動的にID「3」が振られてしまうのだと思います。
すでに自動下書きとして保存された記事ID「3」が存在しました。
結論
以上のことから、パーマリンクに「ID」が含まれている記事を、WordPressのインポートツールでインポートする場合、新しく作ったWordPressはまっさらな状態で行うこと。事前にデータベースにログインして、余計な記事が保存されたままになっていないか、確認をしてからインポートすることが重要です。
もし、新規投稿などの操作をしてしまった場合は、
あとがき
たまたまIDの書き替わっていた記事が、検索で上位に表示されていた記事だったため、早めに気付くことが出来ましたが
もしかすると、他にもあるかもしれません><
記事IDがインポート先のデータベースに存在したのは「3」だけのため、他は大丈夫でしょう。
しかし、素人があまり無茶なことをするもんじゃありません。
が、失敗しないと気づかないのも事実です。
なので、失敗してもいいことにします^^v
ディスカッション
コメント一覧
解決策を探していましたら、こちらの記事にたどり着きました。
テーマをLuxeritasにしましたところ、下記のようなアラートが現れ、MT形式の記事はインポートは出来るのですが、サイトを開くと真っ白になり、MT形式の予約記事が反映されなくなりました。
Notice: screen_icon の使用はバージョン 3.8.0 から非推奨になりました。代替は用意されておりません。
in /virtual/【ユーザー名】/public_html/【ドメイン名】/wp-includes/functions.php on line 3843
記事の編集より、更新ボタンをクリックすると、予約投稿した記事は正常に表示できるようになります。
解決策がおわかりでしたら、宜しくお願い致します。
音羽さん
コメント拝見しました。
しかし、ちょっと私ではお役に立てそうにありません><
これだけの記述で内容を把握するのは残念ながら無理ですね。
テーマをLuxeritasにしましたところということは、他のテーマでは問題が起きていないということなのでしょうか?
インポートしたMT形式の記事は予約投稿以外表示できている、ということでしょうか?
私に同じ経験でもあれば何かお役に立てたかもしれませんが・・・
ごめんなさい、わかりません。