Last Updated on 2015年6月16日 by kabekin
旧ブログから記事の引っ越しは終わりましたが記事内画像へのリンクや外部リンクがエラーだらけです。
と、いうわけでエラー自動検出の便利なプラグイン Broken Link Checker の検出結果を使用して修正します。
修正前のエラー検出結果は630件!!
ほとんどが記事内で使用している画像リンクのようです。
少しでも自動化したいということで手順をまとめました。
Broken Link Checker プラグインの画面を見てみるとエラーリストをエクスポートする機能は見当たりません。
しょうがないので該当ページを表示させて全コピーしてしまいます
コピーしたテキストをsakuraエディタに貼り付けます。(全てのページをまとめて1ファイルで保存)
このエラーリストの中には記事内や外部への画像リンクエラー。
ページリンクエラー(youtube等への動画リンクを含む)
の2種類が主なエラーとして検出されています。
この2種類のエラーリストを抽出するさくらエディタのマクロを作って少し自動化しました
画像リンク一覧
//キーボードマクロのファイル S_ReplaceAll('^(?!.http.+(jpg|png|bmp|gif)).+$', '', 60); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('^\\r\\n', '', 60); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('^\\t', '', 60); // すべて置換 S_ReDraw(0); // 再描画
記事/ページリンク一覧
//キーボードマクロのファイル S_ReplaceAll('^(?!.http.+(htm|html)).+$', '', 60); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('^\\r\\n', '', 60); // すべて置換 S_ReDraw(0); // 再描画 S_ReplaceAll('^\\t', '', 60); // すべて置換 S_ReDraw(0); // 再描画
このマクロを使って問題のあるURLのみ抽出してからリンクエラーを潰していきます
こんな感じでエラー潰しは楽になります。
画像エラーになっている項目はFileExists用PHPスクリプトを作って新サイト内にコピーされているかチェックします。
FileExsistsしてみみると、当然のように全てエラー!
なんで!?、、、と抽出したエラーリストを見てみるとどれもベースURLの置き換えが間違えていました。
と、いうわけでWordpressのプラグイン「Search Regex」を使って一括置換で修正しました。
旧ブログではSearch Regexを知らなかったのでMySQLのSQL文で直接一気に置換えてDBを壊しました・・・
UI画面が整備されているとは言え、やっていることは非常に危険なことなので、「BackWPup」でバックアップします。
間違えているのは2件
asakita.net/kabekin → asakita.net/kabekin
asakita.net/wp-content/ → asakita.net/kabekin/wp-content/
asakita.jpのwebmasterさんごめんなさい・・・
エラーはそのまま放置することなくきちんとチェックしないといけませんね・・・^^;;;
これをSearch Regexで一括置換
Replaceボタンを押して検索結果と置換え結果をプレピューします。
ここでSearch Regexの使い方をメモ
Sourceコンボで置き換え対象の範囲を選択
Comment author = コメント欄の名前フィールド
Comment author email – コメント欄のメールフィールド
Comment author URL – コメント欄のURLフィールド
Comment content – コメント欄の本文
Post content – 記事部分の本文
Post title – 記事部分のタイトル
Post URL – 記事部分のURL
Search pattern欄は置き換え前の文字列
Replace pattern欄は置き換え後文字列
Regexチェックは正規表現使用のチェック
SearchボタンはSearch patternの文字列を検索して表示のみ
ReplaceボタンはSearch patternをReplace patternで置換えたプレビューを表示
Replace & Save でReplaceの出力を反映
Replace & Saveボタンを押すと、置き換え件数のみ表示されて完了しました
この機能で全てのリンクエラーを潰していきます。
Broken Link Checker でのエラー解除は
ページ内の全項目にチェックを付けて
リンク切れから解除するのが良さそうです。
ゴミ箱に移動を選択すると記事が削除されてしまうので注意
(Search Regexは記事内のみ置き換えるので、Broken Link Checkerのエラーリンクは変化せず再チェックできない)
この作業を繰り返してリンクエラーを修正していきます。
Broken Link Checkerから抽出したエラーリストを使い半自動でエラー修正できたものの、
これ以降は外部サイトへのリンクやパターンの違うエラーっぽいので一件ずつ手作業で修正が必要です。
サクラエディタのマクロは不要な行を排除するただの置き換えマクロですが、便利です。
皆さんもお試し下さい^^;;;