WordPress を新規で立ち上げる時に post_id を 1 番から使う必要が出てきたので方法を調べてみました。
WordPress の投稿 ID を連番で運用したいっていう要件ではなく、別サービスで使っている連番で構成されているデータを最初だけ帳尻を合わせてそっくりそのまま移行したいという感じ。以降は飛び飛びになっても問題なしなのでそこの所注意。
結論から書くと方法はこんな感じになる。
- 初期投稿データを削除
- wp_posts テーブルを初期化
- データをインポート
ちなみに、post_id は投稿ページ、固定ページ、画像、あとは下書き等でも消費されていく。URL で綺麗な連番で使いたいって場合は %post_name% を使う事になる。
スポンサーリンク
WordPress の初期投稿データを削除
インストール直後の wp_posts テーブルにはこんなデータが入っている。
mysql> select ID, post_title from wp_posts; +----+-----------------------+ | ID | post_title | +----+-----------------------+ | 1 | Hello world! | | 2 | サンプルページ | | 3 | 自動下書き | +----+-----------------------+
まずはこの投稿を管理画面、もしくは下記関数等で消してやる。
wp_delete_post( 1, true ); wp_delete_post( 2, true );
wp_comments にも初期データが入っているが上記手順で消せば一緒に消える。
wp_posts テーブルを初期化
消したら今度は MySQL にログインして下記を実行。テーブルプレフィックスを変更している場合は適当に読み替える。
wp_comments は別にやらなくても良いけどついでなので。
mysql> TRUNCATE wp_posts; mysql> TRUNCATE wp_comments;
これの状態で新規投稿をすると post_id が 1 番から使える。
最初、wp_posts をいきなり MySQL の TRUNCATE で初期化だけしたらちょっと動作が怪しくなったのでこの方法が確実だと思う。
後はインポートツール等を使ってデータを取り込むと無事連番でインポートできる。