Twitter Tools3.0と日本語の仲を取り持ってみる

以前、こんな記事を書いた。
TwitterでWordPressに投稿する方法

このときに利用した「Twitter Tools」が3.0にバージョンアップし、仕様ががらり変わった。
「Social」と言うプラグインと依存関係があるらしく、こいつをインストールしてやらないと「Twitter Tools3.0」が動かない。
「Social」自身は、WordpressへのポストをTwitterやFacebookへ垂れ流すプラグインだが、「Twitter Tools3.0」ではTwitterの認証をコイツに担わせてるっぽい。

いわれるまま両プラグインをインストールする。
そしてTweet。
以前のようにTweetがWordpressに取り込まれるようになったのだが、なんか変。
Tweet全文が取り込まれず、尻切れトンボになっている。
面倒だったが、「Twitter Tools」のコードの方を確認してみると、/calsses/aktt_tweet.phpの368行目あたりに以下のコードを発見。

$str = substr_replace($str, $entity['replace'], $start, ($end - $start));

$strにはTweet文が入っている。
$entity['replace']は、Tweet文中のハッシュタグやURLをAタグに変換した後の文字列が入ってる。
$start、$endでハッシュタグ、URLの位置を特定し、Aタグに変換してるっぽい。
日本語環境でsubstr_replace関数を使うのはやっかいだなぁ。
たぶん、$start、$endはマルチバイトを考慮して吐き出してなさそうだし。
と言うことで、単純にここを以下のように変更。

$str = str_replace($entity['find'], $entity['replace'],$str);

$entity['find']には、ハッシュタグやURLが取り込まれてるので、str_replace関数で一括変換させるようにした。

加えて、以前の「TwitterでWordPressに投稿する方法」で書いたように、なんでもかんでもWordpressに取り込みたくなかったので、562行目あたりにコードを追記した。

$data = apply_filters('aktt_tweet_create_blog_post_data', $data);

if(strpos($post_content,'#blogjp')===false)

{

return false;

}

$data=・・・は元からあるコード。
その下にハッシュタグ"#blogjp"が含まれていなければ、WordpressへPOSTするためのファンクションcreate_blog_postを抜けるようにした。

「Tweet Tools」が3.0になり、ハッシュタグやメンションも分離されWordpressに取り込まれる上、Tweetに添付した画像もWordpress内に取り込まれる、と言う機能てんこりとなった。
Wordpress+Twitter連携で、いろいろ拡張させれそうだ。

ただ・・・Tweetが自動で取り込まれない。
自分の環境の問題か、根本的なバグか分からないが。
「Tweeter Tools」の設定画面には、15分ごとに取り込まれるっぽいことは書いてある。
現時点、設定画面にある"Download Tweet Now"のボタンを押し、手動で取り込んでいる状態。
cronが動いてるサーバなら、何かしら改良ができるんだろうが、このブログを動かしているExpressWebにはそれがない(T_T)
この点については、作者の改良を期待するほかなさそう。

LINEで送る
Pocket

1件のコメント

  • バージョン3.0.3より、上記問題は解決されたっぽいです(^^;)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください