ieha * Web Design ieha * Web Design

WP_外部ブログをカスタム投稿にインポートする

状況

前回、ECサイトをマルチサイト化して、記事500ほどの外部ブログを、インポートすることに成功
■ECプラグイン(以後Welcart)のマルチサイト対応が不完全だったので、別の方法でブログをインポートする事にする

選択肢として

  • 1.別ディレクトリへ、ブログ用WPをインストールする
  • 2.カスタム投稿でブログを運用する

1.は簡単だけど、ECとの連携度が落ちてしまうし、目的の形から遠いので×。
でもカスタム投稿に、カテゴリーやらなんやら既設の、外部ブログをインポートって?した事ない。
→やってみるか(^_^;)

超大まかな仕様

  • ・Welcartは商品管理にカテゴリー、post_type=postを使う。
  • ・WP「投稿」はpost_type=postなので、普通に投稿するとデータが混在する。運用を考えると、post_typeを切り分けたい。
  • ・Welcartカテゴリと、ブログカテゴリが混在した状態で、クライアントに運用してもらうのは厳しすぎる。
  • ・EC側へブログ抜粋やコメントを引っ張ったり、ブログ側へ「オーナーおすすめ商品」を動的に表示したい。ソーシャル連携をEC・ブログ壁無く行いたい。

外部ブログのエクスポート

こちらを参考にいろいろと。

バックアップ

とりあえずインポートする側をバックアップ。1-1、1-2を行う。

カスタム投稿の設定

  • 1.functions.phpに以下を追記。

     

  • 2.インポートする外部ブログに合わせ、カテゴリー(カスタム分類)を作成。管理画面に「カスタム投稿」という欄が追加されているので、そのサブメニュー「カテゴリー」から。
  • 3.テンプレート用意。とりあえずの表示テスト用。以下みたいのを「single-my_post.php」として保存。テンプレートディレクトリへアップロード。

  • 4.後ほど加工用につかう、WP形式(XML)ファイルをエクスポートしておく。(管理画面→ツール→エクスポート→すべてのコンテンツ)

参考)カスタム投稿

関数リファレンス/register post type
WordPress 3.1 から使う、カスタムポストタイプの設定から表示までのまとめ …的なもの
WordPress3.0のカスタム投稿タイプを、実案件を想定して実践してみる
WordPressカスタム投稿タイプを使って商品紹介ページを作ったよ-part1
WordPressカスタム投稿・分類
カスタムフィールド / カスタム投稿タイプ カスタム分類を活用したサイト構築

エクスポートファイルの変換

「外部ブログのエクスポート」で取得したエクスポートしたファイルは、たいていMT形式だと思うので、WP形式(XML)にします。

  • 1.外部ブログのエクスポートファイルを、バージョン・環境を揃えた別WPにインポート。(管理画面→ツール→インポート→WordPress)
  • 2.1のWPからエクスポート。(管理画面→ツール→エクスポート→すべてのコンテンツ)

強引ですが…。

エクスポートファイルの加工

先ほど変換したWP形式(XML)ファイルへ、以下の加工。

  • 1.画像パスの一括置換→本番環境に合わせる(画像の取得・名前の一括変更が必要な場合、こんなかんじで)
  • 2.post_typeの一括置換
    [xml]<wp:post_type>post[/xml]
    ↓以下へ変更
    [xml]<wp:post_type>my_post[/xml]
  • 3.category domainの一括置換
    [xml][/xml] ↓以下へ変更 [xml][/xml]
  • 4.「カスタム投稿の設定」4で取得した、WP形式(XML)ファイルをテキストエディタなどで開きます。 先頭から100行目あたり、以下のタグ群をコピーして、加工中のWP形式(XML)ファイルの、同じ位の位置へペーストします。 …この作業必要ないかもだけど、カスタム投稿のカテゴリー(カスタム分類)が、インポート時に生成されるか未検証なので。

外部ブログのインポート

  • 1.先ほど加工した、WP形式(XML)ファイルを、本番環境へインポート。(管理画面→ツール→インポート→WordPress)
  • 2.取得しておいた画像をアップロード。(管理画面→メディアライブラリ→新規追加)
  • 3.カスタム投稿へ表示されているか確認
あとは、テンプレートファイルの作り込みをする。と。 …タイトルとか固有CSSの出力とか、条件分岐系。新着n件、月別アーカイブなどなど色々あるなー。わかったら更新します。

コメントする

必須 が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。
※コメントは即時反映されない場合があります。

page top