質問

カスタムCMSからWordPressへのカスタムインポートを行っています。 WordPressのエクスポート/インポートファイルを見ると、ほとんどの構造を一致させることができます。ただし、エクスポート/インポートする際には、カスタム分類法と投稿の関係がありません。

これに対する修正はありますか、それともWordPressのインポートスクリプトを使用しないのは簡単ですか?むしろ、カスタムSQLを作成してすべてを処理します。

また、この新しいサイトを開発しているため、古いサイト(カスタムCMS)のコンテンツはまだ更新されています。発売の数日前に凍結があり、別のDBダンプを行うことができます。ただし、私が予測している問題は、すべての投稿と関係を削除してコンテンツを再輸入する必要があることです。すべての投稿と関係を削除して、複製を防ぎ、コンテンツを再輸入する簡単な方法はありますか?

役に立ちましたか?

解決

WordPressのカスタムインポーター内のカスタム投稿タイプまたは分類法の処理を追加するのは難しくありません。インポーターが実行される前に、カスタム投稿の種類と分類が登録されることを確認する必要があります。登録したら、これらのカスタムタイプでwp_insert_post()およびwp_set_object_terms()を使用できます。これは、タームオブジェクトカウントなどのように常に明らかではない多くの追加フィールドを埋めるため、カスタムSQLを書き込もうとするよりもはるかに優れたソリューションになる可能性があります。

別のシステムからデータをインポートするためのスクリプトに取り組んでいるときはいつでも、あなたが言及した理由のために、そしてデータのインポートが常に多くの試行錯誤であるという理由だけで、常にNuke機能を作成しました。この関数は通常、各投稿のwp_delete_post()を呼び出すための単一のループで構成されています。インポートに応じて、データベースの各用語でwp_delete_term()を呼び出すために別のものを追加することもできます。

$post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_type in ('post', 'attachment', [...other post types])");
foreach($post_ids as $post_id) {
    wp_delete_post($post_id, true);
}
ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top