[wordpress]Tweet old postのタイトルが表示されないエラーを直す
Tweet old postでブログの過去記事を紹介させてもらっていますが、タイトルが表示される場合とされない場合があるんですよね。なかなか時間がとれず見て見ぬ振りをしてましたが、重い腰をあげて修正できましたので、もし困っている方がいらっしゃいましたらやってみてください。
原因は、日本語が2倍の文字数で計算されてしまうため、タイトルが長くなると、Twitterに投稿しきれない長さになると判断されちゃうみたいです。
管理画面→お問い合わせの下→Tweet old post
Use URL shrtnerにチェック
URL Shortener ServiceでどのショートURLサービスを使うか選択します。
私は、bit.lyを選択しました。bit.lyはなかなか良いサービスらしいです。
短縮URLサイト「bit.ly」のアカウントを持ってると利用できる便利機能まとめ*二十歳街道まっしぐら(FC2ブログ時代)
この設定を入れて、Update Tweet Old Post Optionsをクリック。ためしに、Tweet Nowでテストしてみてください。これで改善されることもあるみたいですが、あいにく私は改善されませんでした。
これで改善されない場合は、Tweet Old Postのファイルを編集します。
/wp-content/plugins/tweet-old-post/top-core.php
top-core.phpファイルです。
ここの306行目から329行目のソースを以下のソースに置き換えます。
//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; }
結果、9行追加されて、304行目から338行目のソースとなります。
これで、アップロードすると、きっちり表示されるようになりました。
一時は違うファイルを書き換えてしまい、サイトの表示がおかしくなってしまうアクシデントが発生。ご利用は計画的に(^_^;)