技術日記
WordPress Plugin Twitter Toolsで記事更新時に本文もTwitterに送りたいEdit

ここのWordPressでTwitter ToolsというTwitter連携用プラグインを使っている。

記事を投稿したときに自動的にそのことをTwitterに投稿する機能があるんだけど、これは記事名+URLだけしかツイートとして送ってくれない。いちいち記事タイトルつけるのが面倒くさいから、記事タイトル=カテゴリー名で運用しているとこれじゃーどんな記事なのかさっぱりわからない。

というわけで、適当にソースを見ていじってみた。WordPressの管理ツールでプラグインのソース編集からtwitter-tools/twitter-tools.phpを選び、適当にそれっぽいところを変更してみる。539行目辺りに、

[sourcecode language="php"] $tweet->tw_text = sprintf(__($this->tweet_format, 'twitter-tools'), @html_entity_decode($post->post_title, ENT_COMPAT, 'UTF-8'), $url); $content = preg_replace('/\s+/m', ' ', html_entity_decode(strip_tags($post->post_content), ENT_COMPAT, 'UTF-8')); $tweet->tw_text .= ' / ' .$content; $tweet->tw_text = mb_substr($tweet->tw_text, 0, 136, 'utf8') . '...'; [/sourcecode]

って感じで追加。この記事を投稿したらTwitterに本文概要が送られたら成功。管理ツールから適当に修正したプラグインが一発で動くか! 奇跡を信じて!

うーん、更新されない。Twitterへの投稿自体がうまくいっていないから、根本的に動いていないっぽいな。これプラグインの動作ログを管理ツールから確認できたりしないのかな?

よくわからないが、投稿するツイートを120文字+"..."に変更したら動いたっぽい。文字数の問題だった? まあいいや。

ああ、わかった。mb_strcutの第4引数でエンコーディングを指定していなかったから、mb_strcutが正しく動作していなかったっぽい。たぶんこれでちゃんと動くだろう。

追記@2012/01/27)この記事を検索してくる人がいるんで、追記。Twitterの文字数カウントはバイト数じゃなくて文字数だから、mb_strcutじゃなくて、mb_substrの方だった。ということで上記ソースコードは修正してある。mb_strcutだと投稿される本文の抜粋の量がものすごく少なくなるので注意。

Published At2011-11-07 18:00Updated At2011-11-07 18:00