photo credit: The Daring Librarian via photopin cc
正確な数や割合はわかりませんが、ブログを書いている人の多くが、ブログの更新情報をTwitterへ流しているのではないかと思います。
WordPressをお使いの方であれば「WordTwit」というプラグインを使われている方も多いと思いますが、ある時を境にこの「WordTwit」が正しく動作しなくなる事象が発生するようになりました。
去年からずっと原因を探していたのですが、やっと犯人が「substr」関数だということが分かりましたので、その対応策をここで述べておきたいと思います。
■発生事象
本題に入る前に発生事象から。
発生した事象としては自動投稿された文章が途中で切れてしまうというもの。
投稿された側はこんな感じ。
全ての投稿が駄目という訳では無く、投稿画面でこんな感じに文字化けしている記事だけがだめな模様。
ということは、原因は文字列操作系だろうということはあたりを付けて調べた結果、他のプラグインで文字をトリムする関数「substr」が同様の文字化けを引き起こしているという情報を掴み、Wordtwitのタイトルをトリムする機能が悪さをしていることに行き着いた次第です。
■対応策「substr」→「mb_substr」に置き換える
ということで、WordTwitのsbstr関数をmb_substrに置き換えましょう。
プラグイン編集画面を開き、編集するプラグインで「WordTwit Twitter Plugin」を選択。post-box-functions.phpを開き、「substr」を検索し「mb_substr」に置き換えれば完了です。
この通り、トリム処理での文字化けも無くなり
Twitterへ無事投稿ができましたとさ♪
■多分、設定外すだけでも大丈夫
WordTwit3.5のバグなのかWordpress3.8が悪いのか分かりませんが、現在管理画面から設定変更ができなくなっています。(変更を保存ボタンが押せない)なので、未検証ではありますが、「ツイート文字数制限を維持するために、投稿タイトルを短縮してください」というオプションからチェックを外すだけでも同事象は回避できる可能性が高いです。