• 解決済 tonoro

    (@tonoro)


    280件のCSX形式のデータを、PHPでXML形式に変換し、カスタム投稿(カスタム
    タクソノミー含む)としてインポートしましたが、最初の1件だけしかインポート
    されません。

    1)WPからエクスポートしたxmlファイルを参考に、CSVをPHPで処理してXMLを作成
    (<item>~</item>を項目数分増やしました。以下最初の1件の内容です。)

    <?xml version="1.0" encoding="UTF-8" ?>
    <rss version="2.0"
    	xmlns:excerpt="http://wordpress.org/export/1.1/excerpt/"
    	xmlns:content="http://purl.org/rss/1.0/modules/content/"
    	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    	xmlns:dc="http://purl.org/dc/elements/1.1/"
    	xmlns:wp="http://wordpress.org/export/1.1/"
    >
    
    <channel>
    	<title>ブログ名</title>
    	<link>http://example.com/</link>
    	<description>ブログの説明</description>
    	<pubDate>Mon, 11 Apr 2011 21:56:46 +0000</pubDate>
    	<language>ja</language>
    	<wp:wxr_version>1.1</wp:wxr_version>
    	<wp:base_site_url>http://example.com/</wp:base_site_url>
    	<wp:base_blog_url>http://example.com/</wp:base_blog_url>
    
    	<wp:author><wp:author_id>1</wp:author_id><wp:author_login>ユーザー</wp:author_login><wp:author_email>ユーザーメアド</wp:author_email><wp:author_display_name><![CDATA[tonoro]]></wp:author_display_name><wp:author_first_name><![CDATA[]]></wp:author_first_name><wp:author_last_name><![CDATA[]]></wp:author_last_name></wp:author>
    
    	<generator>http://wordpress.org/?v=3.1.1</generator>
    	<item><!-- ループスタート -->
    		<title>ポストタイトル</title>
    		<dc:creator>ユーザー名</dc:creator>
    		<content:encoded><![CDATA[]]></content:encoded>
    		<excerpt:encoded><![CDATA[]]></excerpt:encoded>
    		<wp:post_date>投稿日</wp:post_date>
    		<wp:post_name>(ポストタイトルをURLエンコードしたもの)</wp:post_name>
    		<wp:status>publish</wp:status>
    		<wp:post_type>カスタム投稿タイプ</wp:post_type>
    		<category domain="カスタムタクソノミー1" nicename="ターム1のスラッグ"><![CDATA[ターム]]></category>
    		<category domain="カスタムタクソノミー2" nicename="ターム2のスラッグ"><![CDATA[ターム]]></category>
    		<category domain="カスタムタクソノミー3" nicename="ターム3のスラッグ"><![CDATA[ターム]]></category>
    		<wp:postmeta>
    			<wp:meta_key>カスタムフィールドのキー</wp:meta_key>
    			<wp:meta_value><![CDATA[カスタムフィールドの値]]></wp:meta_value>
    		</wp:postmeta>
    	</item><!-- ループエンド -->
    </channel>
    </rss>

    2)管理画面の「インポート」から作成したxmlファイルをアップロード、
    「Have Fun!」のメッセージが出ますが、登録されるのは最初の1件だけです。
    3)登録された1件については、カスタムフィールド、カスタムタクソノミーを
    含め、正常にインポートされているようです。
    4)xmlファイルが2MB超ありましたので、WP上でアップロードの上限を3MBに設
    定しています。
    5)xmlファイルのエンコードはUTF-8、改行コードは3種(CR/CR+LF/LF)とも試し
    ましたが症状は変わりませんでした。
    6)CSV Importerも試しましたが、日本語が正常にインポートされない等私の環
    境ではうまくいかなかったので、上記の方法をとった次第です。

    全件正常にインポートする方法をご教授願えれば幸いです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 tonoro

    (@tonoro)

    CSVファイルを弄って、CSV-Importerでインポートできましたので、一応解決
    済みとさせていただきます。

    同じ問題でつまづいて、原因というか解決方法が見つかりましたので書き込みしておきます。
    解決方法は単純で「item」ごとに「post_id」に連番をふってあげればいいみたいです。
    <wp:post_id>1</wp:post_id>

    トピック投稿者 tonoro

    (@tonoro)

    kzyz様
    こんにちわ。

    確かに生成したXMLには「post_id」がありませんね。
    WordPressからエクスポートしたデータには「post_id」の項目がありました
    ので、私がPHPでxmlを生成した際に抜けてしまったのだと思います。
    次回インポートする際は、連番を振ってインポートしてみようと思います。

    ご返信ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「自作XMLファイルで1件しかインポートできない」には新たに返信することはできません。