[Å] WordPressプラグイン「Tweetily」を使って過去記事をランダムにツイートするようにしてみた!

tweetily-eye

ブログを書き始め1年1ヶ月が経過。総記事数はもうすぐ600になります。過去に書いた記事でも中には今でも使える記事はいくつかあります。なので今回は自動的に過去の記事をツイートしてくれるWordPressのプラグイン「Tweetily」をご紹介。

以前

かなり前に「Tweet old post」というプラグインで過去の記事を自動postしていました。

ただいつかのアップデートで私は挙動がおかしくなって、過去記事ツイートを停止。今このプラグインを使っている人もいるようなので使えないというわけではなさそうです。でもけいじろーさん(@Keijirou_)に教わった「Tweetily」というプラグインが気になり心機一転使ってみることにしました。

Tweetily

WordPressの「Tweetily」というプラグインを下記よりダウンロード or WordPressの管理画面で検索。

1度ツイートしてからどれぐらいの間隔でツイートするか、どの期間の記事をランダムに選択するか、同時に投稿するツイートの数の指定などかなり細かく自動postすることができます。

また、アップデートでURLもbitlyを使った短縮URLになったようです。

ただ1つこのプラグインには問題があります。それは日本語の投稿ができないということです。

日本語化対応方法はティカさん(@thikasa)のブログが大変参考になりました。

過去記事紹介プラグイン Tweetily を日本語対応修正する! | thikasa note
strlen …

めっちゃ見ました。めっちゃ参考にしました。この記事なかったらこのプラグイン入れられなかった。そんなレベルの素敵な記事でした。ありがとうございます。

日本語化対応の方法

日本語化対応には以下のファイルを修正します。

/wp-content/plugins/tweetily-tweet-wordpress-posts-automatically/top-core.php

*バックアップを取った上で必ず作業してください。

ソースコードの中から以下のコードを探します。

大体、405-429行目ぐらい。

    $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) {


        $shorten_message_to = 140 - $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, ' '));
        }

このコードの中から「strlen」と「substr」と「strrpos」を探します。

先ほど紹介したティカさんのブログを参考に「mb_strlen」、「mb_substr」、「mb_strrpos」に修正。一括置換で書き換えても良さそうなのですが書き換わってはいけないところがいくつかあるので地道に手で直していきます。

そして出来上がったのがこちらのコード。

    $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, ' '));
        }

上記内容をコピペでも構いませんが、バージョンや環境の違いの関係もあるので動作の保証はいたしません。試して上手くいけばラッキー、ダメだったらバックアップで戻して、手打ち入力してください。横に並べながら「strlen」と「substr」と「strrpos」を修正していけばそこまで難しくはなかったです。

プラグインにアップデートがあるたびに上記修正は必要になります。これはTweet Old Postも同じです。今後のアップデートに備えて今回修正した箇所をどこかにメモっておくと以降修正がしやすくなると思います。

さいごに

数時間に1回ボソっとこれからはつぶやいてみます。最近このブログを読み始めてくださった方に少しでも過去の参考になりそうな情報を届けられたら嬉しいです。Twitterは情報の流れがかなり早い方なので情報キャッチは難しいかもしれませんが、何か少しでもお役に立てる情報を届けられたら幸いです。

それではこれからあかめ(@mk_mizuho)をよろしくお願いします。

本日のピックアップ!

このプラグインは知ってて損のない便利なプラグインです。本番に公開する前に内容を確認してもらい時にかなり重宝します。

■ 同じカテゴリについてもっと読む

ブログ運営者をフォローする!

\ この情報を周りの人にも教える /

プロフィールあかめの画像
あかめAkame Mizuho
横浜在住。フリーランス。
食べ歩き / 旅行 / カメラ / WEBデザイン 好き。

プロフィール / お問い合わせ

個人アカウント(メイン)▼

ブログ公式アカウント▼