WPプラグイン「Tweet Old Post」の書き換えるべき33行

ひとつ前の記事でご紹介した、過去に書いたブログの記事をランダムに抽出し、Twitterに自動投稿する「Tweet Old Post
実はマルチバイト非対応という日本語ユーザーには致命的な問題があるわけですけど、コアファイルをいじることで、簡単に対応させることができます。

「Tweet Old Post」は、そもそもマルチバイト文字である日本語で扱われることが想定されていない仕様になっています。

そのため、日本語は2倍の文字数で計算されてしまうため、タイトルが長くなると、Twitterに投稿しきれない長さになると判断され、よくわからん点字みたいな状態で投稿されてしまいます。

というわけでマルチバイトに対応させましょう。

つーても難しい話ではなく、これから記載するコードをコピーして、該当箇所に上書きしてしまえばいいだけ。

修正するファイルは、
plugins > tweet-old-post
に入っているtop-core.phpというファイルになります。

ファイルを開いたら、305行目から338行目までが該当箇所を書き換えていきます。

バージョンによって行数が異なります。
以下のコードからキーワードを抜き出して、該当箇所を検索して探してみましょう。
//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;
}

これでファイルを上書き保存してしまえば、あとは問題なく投稿されるようになります。

「点字が投稿されるッッッ!!!!?」

という人は、このコードの差し替えを行って頂ければ大丈夫ですよ。

ただ、プラグインのバージョンアップがあった場合に、まだマルチバイト対応されていないと元に戻ってしまうというのがね・・・。

是非プラグイン作者にはマルチバイトへの対応をしてもらいたいところです。
仮に戻ってしまった場合は、また書き換えるしかないので、そこのところはご容赦を。

「WordPressカスタマイズ」新着記事

ソーシャルメディアのトータルシェア数を条件にして記事をランダム表示する方法

ホシナ カズキ

チャット風の会話形式コンテンツをプラグインなしで実装する方法

ホシナ カズキ

【WordPress】パーマリンクからカテゴリーベースを取り除く方法

ホシナ カズキ

ディレクトリを切ってインストールしたWordPressをドメイン直下で表示させる方法

ホシナ カズキ

「RSS Footer」が開発終了したならfunctions.phpで同じことやればいいじゃない

ホシナ カズキ

もっと見る

モバデビはモバイルやウェブのネタ、ニュースMaciPhoneなどのApple関連、WordPressのことなど、いろいろ書く雑食系ブログメディア。
ためになるかもしれないし、ならないかもしれない。そこそこ更新してますそこそこ。

このブログについてもっと詳しく