
Tweet Old Postが「…」と表示されるので日本語対応させる方法
2013/09/20Tweet Old Postを復活させました、@jinnaitakumiです!
Tweet Old Postはブログの過去記事を自動でツイートしてくれる便利なプラグインですが、日本語のタイトルが「…」になってしまうので、それを修正しました。
この記事の執筆時点でのTweet Old Postのバージョンは4.0.7です。参考までに。
Tweet Old Postをひさしぶりに実装
いつごろの話か忘れましたが、Tweet Old Postがけっこうひどいバグで、アップデートしたらブログが表示されなくなることがありました。
とっくに修正されていたんですが、そのときに削除したまま放置していました。
ですが、やっぱり過去記事をポストしたほうが、何かとおいしいんじゃないかと思って、実装し直すことに。
すると案の定、日本語のタイトルが「…」とかになってちゃんと投稿されない現象が。
これは!→ :… http://t.co/kcohVPxNPo
— じんないたくみ (@jinnaitakumi) September 14, 2013
これじゃあ、困るので、日本語タイトルもしっかり表示されるように修正しました。
日本語対応させる
mbdbのこの記事を参考に。
この記事中盤にあるコードと、プラグインのソースコードの一部を差し替えると、ちゃんと動作してくれます。
編集するTweet Old Postのファイルは
のtop-core.phpです。
以下のコードをtop-core.phpの402行目〜433行目(バージョン4.0.7の場合)のコードと差し替えます。
//Shrink a tweet and accompanying URL down to 140 chars.
function set_tweet_length($message, $url, $twitter_hashtags="", $hashtag_length=0) {
$tags = $twitter_hashtags;
$message_length = mb_strlen($message);
$url_length = mb_strlen($url);
//$cur_length = strlen($tags);
if ($hashtag_length == 0)
$hashtag_length = mb_strlen($tags);
if ($twitter_hashtags != "") {
if(mb_strlen($tags)>$hashtag_length)
{
$tags = mb_substr($tags, 0, $hashtag_length);
$tags = mb_substr($tags, 0, mb_strrpos($tags, ' '));
}
$hashtag_length = mb_strlen($tags);
}
if ($message_length + $url_length + $hashtag_length > 140) {
$shorten_message_to = 140 - $url_length - $hashtag_length;
$shorten_message_to = $shorten_message_to - 4;
//$message = $message." ";
if(mb_strlen($message)>$shorten_message_to)
{
$message = mb_substr($message, 0, $shorten_message_to);
$message = mb_substr($message, 0, mb_strrpos($message, ' '));
}
$message = $message . "...";
}
return $message . " " . $url . " " . $tags;
}
おそらくは「strlen」とか「substr」の頭に「mb_」を付ける修正を行っているのだと思います。
(他にもあるかもだけど)
バージョンが違って何行目か分からない場合は、コメント部分(「//」ではじまってるところ)をコピペして、検索かけると分かると思います。
とりあえずこれで「…」表示は治るのでめでたしめでたし。
【過去記事】 : とにかく薄さに圧倒される! iPhone5のファーストインプレッション! http://t.co/kh7SG9xn7Q
— じんないたくみ (@jinnaitakumi) September 15, 2013
おわりに
以前にもこの作業をやっていたんですが、ブログにやり方を残してなくて、ちょっと遠回りをしてしまいました。
なので、とりあえずブログ関連でいじったところは逐一、書いていくことにします。