WordPressにてインポートとエクスポート

wordpressでインポートするとき、
エクスポートされるデータが
日付があっちいったりこっちいったりで、
記事番号が昇順でなかったりすると、
巧くインポートされないとか聞いてたので、ローカルで試してみた。

確認してみたら番号を改めて振りなおすのね。
だから日付毎になるんだかなんだか知らんが、変な記事順になる。

POSTIDを維持したままインポートする方法

これが結構単純に出来たりする。

巧くインポートされなかったのはデータがあるwordpress。
つまり記事データがある状態でインポートしたからズレた。
要するに解決には記事を全て消しちゃえばいいのです。

wordpressの
『wp_posts』『wp_term_relationships』『wp_term_taxonomy』『wp_terms』の4本のテーブルを
create文を取得したあと、消す。

作り直す。
それからインポート。

こ れ だ けー!

すると、IDが保持されてるのだ!
なんて単純で優しくてありがとう!

create文を取得し忘れたキミへ

CREATE TABLE "wp_posts" (
 "ID" integer PRIMARY KEY  NOT NULL ,
 "post_author" integer NOT NULL  DEFAULT '0' ,
 "post_date" datetime NOT NULL  DEFAULT '0000-00-00 00:00:00' ,
 "post_date_gmt" datetime NOT NULL  DEFAULT '0000-00-00 00:00:00' ,
 "post_content" text NOT NULL ,
 "post_title" text NOT NULL ,
 "post_category" integer NOT NULL  DEFAULT '0' ,
 "post_excerpt" text NOT NULL ,
 "post_status" text NOT NULL  DEFAULT 'publish' ,
 "comment_status" text NOT NULL  DEFAULT 'open' ,
 "ping_status" text NOT NULL  DEFAULT 'open' ,
 "post_password" text NOT NULL  DEFAULT '' ,
 "post_name" text NOT NULL  DEFAULT '' ,
 "to_ping" text NOT NULL ,
 "pinged" text NOT NULL ,
 "post_modified" datetime NOT NULL  DEFAULT '0000-00-00 00:00:00' ,
 "post_modified_gmt" datetime NOT NULL  DEFAULT '0000-00-00 00:00:00' ,
 "post_content_filtered" text NOT NULL ,
 "post_parent" integer NOT NULL  DEFAULT '0' ,
 "guid" text NOT NULL  DEFAULT '' ,
 "menu_order" integer NOT NULL  DEFAULT '0' ,
 "post_type" text NOT NULL  DEFAULT 'post' ,
 "post_mime_type" text NOT NULL  DEFAULT '' ,
 "comment_count" integer NOT NULL  DEFAULT '0'
);
CREATE TABLE wp_term_relationships (
 object_id  integer NOT NULL default 0,
 term_taxonomy_id  integer NOT NULL default 0,
 term_order   integer NOT NULL default 0,
 PRIMARY KEY  (object_id,term_taxonomy_id)
);
CREATE TABLE "wp_term_taxonomy" (
 "term_taxonomy_id" integer PRIMARY KEY  NOT NULL ,
 "term_id" integer NOT NULL  DEFAULT 0 ,
 "taxonomy" text NOT NULL  DEFAULT '' ,
 "description" text NOT NULL ,
 "parent" integer NOT NULL  DEFAULT 0 ,
 "count" integer NOT NULL  DEFAULT 0 
);
CREATE TABLE wp_terms (
 term_id  integer NOT NULL  PRIMARY KEY AUTOINCREMENT ,
 name   text NOT NULL default '',
 slug   text NOT NULL default '',
 term_group  integer NOT NULL default 0,
 "term_order" INTEGER DEFAULT 9999
);

まぁ、消して作りなおさなくても『TRUNCATE TABLE テーブル名;』でもイケると思う。
空にしてAUTO_INCREMENTを初期値に出来ればいいわけだからねぇ

コメント

タイトルとURLをコピーしました