Tweetilyの改造

※この改造はお勧めできません。参考になさる方は自己責任で!

記事を自動的にツイートしてくれるプラグインの「Tweetily」だが、日本語の件名だと文字数140文字の制限にかかりやすい。本来、ひらがなやカタカナ、漢字を一文字と数えてくれるはずなのだが、APIでデータを受け渡すとき、文字コードで引き渡すようで、うまく件名が表示されないことがる。

よって、140文字を280文字にしちゃえ~というノリでPHP(ファイル名 top-core.php)をいじってみた。これが案外良い結果で長い件名でも省略されず、ツイッターに表示される。


//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 = strlen($message);
$url_length = strlen($url);
//$cur_length = strlen($tags);
if ($hashtag_length == 0)
$hashtag_length = strlen($tags);

if ($twitter_hashtags != "") {
if (strlen($tags) > $hashtag_length) {
$tags = substr($tags, 0, $hashtag_length);
$tags = substr($tags, 0, strrpos($tags, ' '));
}
$hashtag_length = strlen($tags);
}

// if ($message_length + $url_length + $hashtag_length > 140) {
if ($message_length + $url_length + $hashtag_length > 280) {

// $shorten_message_to = 140 - $url_length - $hashtag_length;
$shorten_message_to = 280 - $url_length - $hashtag_length;
$shorten_message_to = $shorten_message_to - 4;
//$message = $message." ";
if (strlen($message) > $shorten_message_to) {
$message = substr($message, 0, $shorten_message_to);
$message = substr($message, 0, strrpos($message, ' '));
}
$message = $message . "...";
}
return $message . " " . $url . " " . $tags;
}

カテゴリーweb