読者です 読者をやめる 読者になる 読者になる

Zバッファ

iPhoneやAndroidスマホなど家電ガジェット系レビュー記事中心。秘境スポットなどの旅行ネタやふるさと納税などの節約ネタ、投資ネタなど幅広く解説しているライフハックブログ。

これは便利! はてなブログの過去記事全部のリンクや文字を5分で簡単に一括修正する方法

はてなブログ
スポンサーリンク

このはてなブログは3月末に独自ドメインにしました。

その結果、ブログのURLがzbuffer.hateblo.jpからwww.zbuffer3dp.comに変わりました。

はてなブログを使っている状態で独自ドメインにした場合は、旧アドレスから新しいアドレスに301リダイレクトが行われるため、グーグルやYahooなどの検索関係で特に対応する必要はありません。

www.zbuffer3dp.com

しかし、過去記事に挿入している内部リンクなどのアドレスは古いzbuffer.hateblo.jpのままになっています。

そのまま放置しても基本的には問題ないはずなのですが、クローラーに的にもリダイレクトさせない方が余計な処理をさせないのでいいに決まっています。

しかし、ここで問題となるのが過去の膨大な記事に対して1つ1つ修正するのは時間が非常にかかるということです。

そこで今回は、はてなブログでも過去記事内の表現やリンクを一括で修正する方法を紹介します。

色んな場面で活躍するので知っておくととても便利ですよ。

はてなブログの過去記事内部を一括修正する手順

当ブログは2014年の10月に開設したのですが、これまでに公開した記事数は330を超えています。

これらの1つ1つの記事を編集画面開いてURLを修正するなんて作業は生産性がない愚の骨頂です。

そこで何らかのITツールを活用できなかと調査しました。

その結果、はてなブログでも過去記事内部を探索して、別の文字に置き換える事が簡単に出来ることが分かりました。

そもそもWordPressなら一括置換はプラグインで簡単

因みにWordPressならば「Search Regex」というプラグインを利用すれば、過去記事のリンクURLや文字を一括で置き換え修正することが可能です。

WordPressで過去記事のリンクを一括置換するプラグイン

 

はてなブログで一括置換を行う方法

WordPressとは異なりはてなブログの場合はプラグインという仕組みが存在しません。

そして、はてなから提供される標準機能では、過去記事の内部を一括で置換したり修正する機能はありません。

やはり1つ1つ記事編集画面で修正するしか方法はないのか?

と調べていたところ、とても便利なツールを提供されている方を発見しました。

smdn.jp

上記サイトでははてなブログ向けツールを開発公開されていて、下記のような機能のツールを公開してくれています。

  • すべてのブロク記事をダンプ・エクスポートするツール
  • ブログに新規記事を投稿するツール
  • ブログ内の全記事の内容を一括置換・削除するツール
  • ブログ記事のカテゴリを一括変更するツール

この中で今回紹介するのは、「ブログ内の全記事の内容を一括置換・削除する」ツールです。

ツールの名称は「ReplaceEntryContent」といいます。

Windowsのコマンドラインで使うツールになっているので、まったくの初心者だと敷居を高く感じてしまうかもしれませんが、ここから紹介する手順に従えてば誰でも使うことが出来ます。

はてなブログ内の全記事内部を特定の文字で検索し、指定文字に置き換える

まずは、先程初回したリンク先のページからHatenaBlogToolsの最新バージョンをダウンロードします。

HatenaBlogTools

 

zipファイルでダウンロードされるので、任意の場所に解凍します。

解凍すると、HatenaBlogToolsというフォルダが作成され、そのフォルダ内には4つのexeファイルがあります。

  1. DumpAllEntries.exe
  2. ModifyCategory.exe
  3. PostNewEntry.exe
  4. ReplaceContentText.exe

ReplaceContentText.exe

今回はこの4つのうち"ReplaceContentText.exe"を利用します。

ここから先はHatenaBlogToolsというフォルダがCドライブの直下にある前提で話を進めていきます。

ReplaceContentText.exeの使い方

このツールの使い方はについては、既に先程紹介したリンク先に記載があります。

従ってここではより実際に私が使った事例を交えて使い方を説明していきたいと思います。

既にコマンドラインを使ったりした事がある人は読み飛ばしてもらって大丈夫です。

まずはコマンドプロンプトを起動する

なにわともあれ、まずはコマンドプロンプトを起動する必要があります。

Windows10であれば、スタートボタン横にある検索窓にcmdと入力し、そのままEnterキーを押せばコマンドプロンプトが起動します。

Windows10コマンドプロンプト起動方法

コマンドプロンプト画面

コマンドプロンプトが起動したら、ReplaceContentText.exeのファイルをコマンドプロンプトの画面にドラッグ・アンド・ドロップしてください。

すると、下のような状態なります。

f:id:Uranff:20170416161340j:plain

次に、ReplaceContentText.exeの後に半角スペースで空白をあけて、下記情報を入力します。

  • -id はてなのユーザーIDを指定します。
  • -blogid はてなブログのドメインを指定します。
  • -apikey はてなブログの詳細設定ページに記載されているAtomPubのAPIキーを指定します。
  • -from 置き換えたい文字を指定します。
  • -to 置き換え後の文字を指定します。

今回私の場合は旧ドメインから新ドメインへのリンク先変更なので以下の文をなります。

ReplaceContentText.exe -id Uranff -blogid www.zbuffer3dp.com -apikey *** -from "zbuffer.hateblo.jp" -to "www.zbuffer3dp.com" -v -n

f:id:Uranff:20170416162517j:plain

-vと-nの意味

上では-vと-nが書かれていますが、-vと-nは必ずしも記載する必要はありません。

-vと書くと、置換前後の内容がコマンドプロンプトに表示出来ます。

そのため、置換前後の内容を確認したい場合には指定しましょう。

また、-nは実際にはてなブログの内容を書き換えずに置換した事前に正常に置換できるかを確認する場合に指定します。

そのため、まずは、-vと-nを指定した状態で実行して、意図した結果になるかを確かめることをオススメします。

一括置換の実行

前項で-nを指定して実行した結果が問題なければ、今度は実際にはてなブログの過去記事全ての内容を一括で置き換える処理を実行します。

実際に実行する場合は、先程の文から-nを削除してEnterキーを押すだけです。

-id Uranff -blogid www.zbuffer3dp.com -apikey *** -from "zbuffer.hateblo.jp" -to "www.zbuffer3dp.com" -v

-nを指定して実行した時とは異なり、今度ははてなブログの内容を実際に書き換える処理を行うので、処理完了まで数分かかります。

-vを指定している場合は、1つ1つ処理が行われる毎に下記のように置換前後の文章が表示されます。

枠で囲った部分は以前は"zbuffer.hateblo.jp"というドメインだったのですが、それが独自ドメインの"www.zbuffer3dp.com"に変わっている事が分かります。

はてなブログ過去記事を一括置換した結果

コマンドプロンプトに何も表示されなくなったら、処理完了です。

f:id:Uranff:20170416163836j:plain

 

正常に置き換えが出来たか確認する

ReplaceContentText.exeを使ったはてなブログの過去全記事一括修正が完了したら、正常に置き換えが出来たかを確認しましょう。

確認方法ですが、直接いくつかの記事を直接確認するとともに、はてなブログの記事の管理画面で置換前の文字を入力して検索ボタンを押して、記事が1つもヒットしないことを確認しましょう。

はてなブログの過去記事内を検索する方法

 

アフィリエイトリンクの切り替えやリンク切れ対応にも使える

今回紹介したはてなブログの過去記事一括修正機能は色んな場面で大活躍します。

個人的に1番活躍するのではないかと思うのが、アフィリエイト広告の掲載が終了したリンクを一括で削除したり、別のURLに置換する時です。

また、一定の文字を記事の中に挿入しているケースなんかでは、それを別の文字に一括で置き換えたり削除することも簡単に出来ます。

 

最後に今回のツールに限らない話ですが、ブログ全体に対する処理を行う際は、事前にバックアップをとっておくことを忘れないようにしましょう。

また、はてなブログの仕様変更などによっては、今回紹介したツールが今後正常に動作しないこともありえます。