WordPressでは、データの管理を効率よく行うためにページごとに固有のIDが割り振られています。
例えばこのページにはIDとして62が割り振られています。
このIDがカンタンに変更できてしまうとWordPressの管理に不具合を生じてしまうことがあるため、WordPress標準機能では変更できないようになっています。
ですが、ブログの移転などで記事を移したときにページIDがズレてしまう問題に遭遇することがあり、ページIDを変更しなければならない事情がある人もいるはずです。
今回は、WordPress標準機能では変更できないページIDを手動で変更する方法について解説していきます。
ページIDを変更する方法
元のページIDを使用したい場合ですが、実はプラグインで解決する方法がありません。
ページ内リンクのURLのページID部分を変更するだけならSearch RegexやBetter Search Replaceなどの一括置換プラグインを使えばいいですが、ページIDを直接変更できるプラグインはありません。
データベースを直接操作する必要があります。
データベースの操作は何を使ってもいいですが、レンタルサーバーであればPHPMyAdminが提供されているはずなので、そちらから以下のSQLを実行してください。
UPDATE wp_posts SET ID=[変更後の番号] WHERE ID=[変更前の番号];
UPDATE wp_posts SET post_parent=[変更後の番号] WHERE post_parent=[変更前の番号];
UPDATE wp_postmeta SET post_id=[変更後の番号] WHERE post_id=[変更前の番号];
例えばページIDが123の記事のIDを45に変更したい場合は以下のようになります。
UPDATE wp_posts SET ID=45 WHERE ID=123;
UPDATE wp_posts SET post_parent=45 WHERE post_parent=123;
UPDATE wp_postmeta SET post_id=45 WHERE post_id=123;
不具合が起きやすいのでおすすめしない
ページIDを変更すると、意図せずほかのページやデータのIDと重複してしまうことがあるため結構な確率で不具合が起こります。
おそらくページIDが変わってしまって困っている人はバックアッププラグインを使わず手動で記事を移した人だと思いますが、ページIDが変わってほしくないならバックアッププラグインを使って記事データをバックアップ、復元することをオススメします。
ページIDに依存しないURL設定にするのがオススメ
WordPressにはパーマリンクという、URLのフォーマットを指定できる機能があります。
デフォルトでは投稿IDだけになっていますが、パーマリンクをカスタマイズする事でページIDが変わってもURLが変わらないようにすることが可能です。

例えばこのサイト『ワドップ』ではパーマリンクのフォーマットを/%year%/%monthnum%/%postname%/
にしていて、https://nidea.jp/wordpress/投稿した年/投稿した日/スラッグ/
となるようにしています。
この記事だと、投稿日付は2022年3月でスラッグはchange-page-id
にしているので、実際のURLはhttps://nidea.jp/wordpress/2022/03/05/change-page-id/
になります。
パーマリンクにページ IDを含まないようにすれば、ページIDが変わってもURLが変わらずリンクエラーやインデックスされるページが変わることもありません。
今までパーマリンクを一度も変更していなかった場合は、今後のURLの管理をラクにするためにもパーマリンク設定を変更するといいでしょう。