私は長年Wordpressを実行しており、約26000の投稿があります。
ある時点で、投稿IDが32ビット整数を超え、64ビットシステムでWordpressを使用するようになりました。
4863166253のようなIDの投稿が表示されています。
32ビットのラズベリーpiのような低電力サーバーにホスティングを切り替えたい
すべてが20億未満になるように投稿IDをリセットする方法はありますか?
私のWordpressバグレポートはここで読むことができます
ありがとう。
私は長年Wordpressを実行しており、約26000の投稿があります。
ある時点で、投稿IDが32ビット整数を超え、64ビットシステムでWordpressを使用するようになりました。
4863166253のようなIDの投稿が表示されています。
32ビットのラズベリーpiのような低電力サーバーにホスティングを切り替えたい
すべてが20億未満になるように投稿IDをリセットする方法はありますか?
私のWordpressバグレポートはここで読むことができます
ありがとう。
回答:
この答えは、私がそれに直面しなければならなかった場合に問題を解決するために取る方法です。それは、答えではなく、可能性の1つであることを意味します。
私が提案するすべての操作は、本番や元のデータベースではなく、データベースのバックアップの開発/ローカルサーバーで実行する必要があります。
投稿が26,000あるが、投稿IDが4,863,166,253の場合、使用されていないIDが数十億あります。
この問題を解決するには、次のことを行う必要があります。
スコープにはプラグインがありますが、単純な生のSQLクエリを使用して実行できます。
投稿IDをリセットして、1から開始するように変更します。これは、PHP + MySQLの組み合わせを使用して実行できます。投稿ID列を配列として取得すると(例:を介して$wpdb->get_col()
)、配列キー(1ずつ増加)が新しい投稿IDになります。現在のIDが配列値にある投稿。
投稿IDは次の場所で変更する必要があることに注意してください。
このようなルーチンは、全体で数千行ではなく、ページ分割された結果を使用して投稿のサブセットで実行することをお勧めします。
AUTO_INCREMENT
投稿テーブルのインデックスを投稿数+ 1に設定します。
このプロセスの最後に、より高い投稿IDは32ビット整数制限内に簡単に収まるはずです。
ポストリビジョンを無効にするか、数を制限します(コーデックスを参照)。
古い投稿(2年?5?)をマルチサイト環境の別のブログに移動します(例:site1-archive.example.com
の投稿)site1.example.com
。
これは、日付範囲オプション付きのWordPressエクスポーターを使用して行うことができます。
これを行う予定の場合は、投稿IDをリセットする前に(上記のステップ2)、2つのブログの投稿IDを低くすることができます。
もちろん、その後に、アーカイブされた投稿のURLを新しいURL にリダイレクトする方法も導入する必要があります。