WordPressの過去記事を自動でSNS投稿してくれる「Revive Old Post」の文字化け解消方法

Advertisement

fix-mojibake-for-revive-old-post

TwitterでWordPressの過去記事が自動で配信されているのを見て、面白いと思ったので自分も導入してみました。僕の場合「Revive Old Post 」というWordPressのプラグインを使って、2年分の過去記事が6時間おきにランダムにTweetされるように設定してみました。

一所懸命書いた過去記事を宣伝したいというのもありますが、自分でも昔の記事をランダムに見られて面白いです。「あぁ、そういえばこんなこと考えてたなぁ」とか「あれ、これ古くなってる!修正しなきゃ」みたいな気づきもあります。

長い日本語タイトルが文字化けしてしまう

そんな便利な「Revive Old Post」プラグインですが、一つだけ長いタイトルの日本語が文字化けしてしまうという問題がありました。プラグインのTweetの書き出し部分が2バイト文字に対応してないんですね(バージョンは7.2です)。

修正方法

プラグインのソースコードを書き換えるので注意が必要なので、ローカル環境などでテストしてからやってくださいね。ソースコードを以下のように修正したら直りました。

プラグインファイルのwp-content/plugins/tweet-old-post/incフォルダにあるcore.phpの594行目の部分を修正します。ちなみにプラグインのバージョンは7.2です。将来のバージョンでは修正されると良いですね。

修正前

public function ropSubstr($string,$nr1,$nr2) {
  return substr($string,$nr1, $nr2);
}

修正後

文字数調整に使うマルチバイト対応のmb_substrという関数の存在確認をしてから、substr関数の代わりにmb_substrを使うようにプログラムを書き換えます。

public function ropSubstr($string,$nr1,$nr2) {
  if (function_exists("mb_substr")) {
    return mb_substr($string,$nr1,$nr2);
  }
  else
  {
    return substr($string,$nr1, $nr2);
  }
}

修正には、以下の記事を参考にさせていただきました。ありがとうございます!

まとめ

TwitterとFacebookにランダムで過去記事を配信する設定なら無料でできるので、一度試す価値はあると思います。面白いです。PRO版($75)を購入すると複数アカウントの設定やTwitterとFacebook以外にもLinkedInやTumblrに投稿できたり、各SNSで細かいスケジュールを設定する機能を追加できます。もう少し様子を見て安定性が確認できたら職場のプロジェクトでも導入してみようと思います。

最近、このブログでも職場のプロジェクトでもコンテンツ制作の大変さを実感しています。そして、その分、作ったコンテンツを最大限に活用したいという思いが強くなっています。人には1日24時間しか与えられていないので、こういった自動化のヘルプも重要です。

広める価値のあるコンテンツを作ること、そして、それを広める努力をすること。両方とも大切ですね。怠らずに頑張ろうと思う今日このごろでした。

WordPress関連の記事

よかったら他のWordPress関連の記事もどうぞ

About the author

Rriverのステッカーが貼られたMacBookの向こうにいる自分のMemojiの似顔絵

「明日のウェブ制作に役立つアイディア」をテーマにこのブログを書いています。アメリカの大学を卒業後、ボストン近郊のウェブ制作会社に勤務。帰国後、東京のウェブ制作会社に勤務した後、ウェブ担当者として日英バイリンガルのサイト運営に携わる。詳しくはこちら

ウェブ制作・ディレクション、ビデオを含むコンテンツ制作のお手伝い、執筆・翻訳のご依頼など、お気軽にご相談ください。いずれも日本語と英語で対応可能です。まずは、Mastodon @rriver@vivaldi.net Twitter @rriver 、またはFacebook までご連絡ください。