前回の続きで、「アメブロらくらくバックアップ」を使ってアメブロからWordPressへデータを写した話です。
※2016年12月時点の情報です。「アメブロらくらくバックアップ」は更新されている可能性があります。最新情報は「アメブロらくらくバックアップ」のサイトを確認してください。
※サーバにかなりの負荷がかかる旨の注意事項が書かれていますので、実行される際の環境は各自で確認してください。ちなみに、私が動かしたのは「XServer」です。
Contents
「アメブロらくらくバックアップ」を動かしてみる
今回の作業は「引越し」なので、全件データを移すことが目的です。
アメブロらくらくバックアップで全件データを移す場合は、記事のURLを記載したテキストファイルを用意します。
URLリストの取得方法は前回の記事を参考にしてください。
ちなみに、URLリストの前後に余計な文字があると取り込みできないので注意が必要です。私はこれに気付かず無駄な時間を費やしてしまいました・・・。
いきなり全件処理を行うと時間がかかりそうなので、URLリストは1件だけにして、アメブロらくらくバックアップの設定をしました。
しかし、画面上は何も変化しない・・・。
もう一度公式サイトを読むと、動作には「wp_cron」を使っているとあります。
「wp_cron」って何?
調べてみるとスケジュールでタスクを実行するようです。
サイトにアクセスがあったときに、待ち状態のタスクを実行するような感じだと理解しました(適当)。
なので、設定をしただけで処理が走るわけではなく、実際にサイトをブラウザで表示する必要があったようです。
試しにブラウザでアクセスして、インポート先のカスタム投稿(今回は「アメブロ」というカスタム投稿を用意しておきました)をみると、データが1件追加されていました。
が、タイトルも内容も空っぽでした。
URLリストは読めてるっぽいけど、アメブロのデータ読込がおかしいと思い、プラグインのPHPの解析を始めました。
以下、私の環境で修正した内容です。
アメブロらくらくバックアップの修正した内容
大きくは以下の3点です。
- 解析用要素の定義ファイルの読込パス
- 解析用要素の定義ファイルのデータ並び替え
- 画像パスの変換
解析用要素の定義ファイルの読込パス
サイトのマニュアルと違って、私がインストールしたバージョンでは解析用要素を簡単に取り込めるように、定義ファイルを使うようになっていました。
処理するときに定義ファイルから内容を読み込んでいるのですが、この読込パスが実際のファイル配置とは違っていたため定義ファイルの読込に失敗していました。
細かい内容は省きますが、scaping_all.phpの中を修正しました。
$file = dirname(__FILE__) . '/txt/'. $scraping_setting .'.txt';
↓
$file = dirname(__FILE__) . '/../txt/'. $scraping_setting .'.txt';
解析用要素の定義ファイルのデータ並び替え
無事に定義ファイルを読み込めたのですが、まだ解析が上手くいかないのかインポートされるデータはタイトルのみで本文が空っぽでした。
そこで解析用要素の定義ファイルを確認すると、要素としてはアメブロの内容と一致しているようです。
となると、解析処理のほうかなと思い、見てみると、定義ファイルで書かれている順番と、PHPソースで読み込んでいる要素にズレがあることを発見しました。
こちらも細かい点は省きますが、blogscraper/txt/default.txtを修正しました。
a.skinArticleTitle
.articleTime time
.articleText
.articleTheme a[rel='tag']
↓
a.skinArticleTitle
.articleText
.articleTheme a[rel='tag']
.articleTime time
画像パスの変換
これでタイトル、本文、投稿日時、テーマが取得成功しました!
これだけで感動モノでしたが、画像が表示されていません。。。
画像ファイルを確認すると、WordPressのフォルダ内にはあるので、取り込みは成功しているようです。
となると、画像ファイルパスの変換を修正する必要があります。
今回のWordPress環境はサイトURLを変更しているのが原因でした。
scaping_all.phpを修正しました。
$file_paht = home_url(). '/ameblo_images/' . $blog_entry['image'][$i]['path'] .'/'. $blog_entry['image'][$i]['filename'];
↓
$file_paht = home_url(). '/wp/ameblo_images/' . $blog_entry['image'][$i]['path'] .'/'. $blog_entry['image'][$i]['filename'];
素晴らしいツールです!
いざ、動作させると、完璧にデータがインポートされました\(^o^)/
いやはやスゴイ便利です。
1件のテストデータが成功したので、200件ほどのURLリストを使って引越しをしてみましたが、一度設定すれば、あとは勝手に取り込んでWordPressの下書きとして保存されていくのでめちゃくちゃ楽でした。
研究中とのことで、多少の手直しが必要でしたが、機能的には大満足です。
どうしても上手くいかない場合は、有料ですがサポートもあるので、安心して使えるのではないでしょうか。
素晴らしいプラグインを提供してくださったことに大感謝です。
コメント