TwitterをWordpressブログに1週間まとめて投稿する方法

この記事で紹介しておりますプラグインTwitter Toolsは2012年10月にバージョンアップされまして、一括でのブログポスト機能は廃止されました。そのためこの記事で紹介している方法は使えなくなりました。

以前から、Twitterのツイートをまとめてこのブログに投稿しています。

WordPress上で対応するにはどのような形がベストか試行錯誤していたのですが、だいたい良いと思える状態まで来ましたので、公開してみます。

Twitterをまとめてブログ投稿すること

Twitterでのツイートをまとめてブログに投稿することは、自分の為の記録として便利です。 自分の過去のツイートを調べたい時にTwitterのシステムのままでは遡る事はほぼ不可能ですが、ブログにまとめてあるとサイト内検索で大体たどり着けますし、流れも把握できます。 また、一応は検索流入も得られる自分が書いた文ですし、自分のサイトで保持したいというSEO屋チックな考えも。Twitterのままでは古いツイートは滅多に検索結果に表示されませんが、まとめておくと古いツイートでもある程度は検索にヒットします。

私は、Twilogを使うのは少し躊躇しました。Twilogは機能もUIも素晴らしいものと思いますが、自分が書いたテキストは、出来る限り自分の管理下に置いておきたいと思ってしまいます。

しかし、Twitterをまとめてブログに投稿することは、普通に普段使っているブログで行うと微妙です。 一部無料ブログでも対応している機能、ツイートを毎日まとめてブログに自動投稿するのは、私はどうも嫌でした。 いくつか読ませていただいていたブログで、更新頻度は少ないものの有益な記事を書かれていた方が、これを始めてからブログがツイートで埋まってしまい、私も定期訪問を止めることにしたものがあります。その方をTwitterでフォローしていますので、まとめられなくても読んでいますし。

そういう事から、何らかの形で複数日分まとめてブログに上手く投稿できれば理想なんだけど、と思っておりました。

理想的なツイートのブログ投稿

私は、理想的なツイートのブログ投稿は下のような形と思います。

  1. 1日分ではなく、数日分をまとめてPost可能
  2. ブログのトップページには反映されない。
  3. RSS配信にも反映されない。
  4. カテゴリ指定が可能で後でたどりやすい。
  5. 有る程度マークアップのカスタマイズができる。
  6. ブログ内にエントリを生成して、ユニークテキストによるサイトボリュームの増加に寄与できる。

これをWordPressで実現する方法を考えまして色々やってみました結果がこのエントリーです。 このページに投稿されています通り、7日分のツイートを1エントリにまとめて投稿しつつ、毎ツイートの日付を公開するようになっています。

これを実現するためには2つのプラグインの設定とカスタマイズと、Wordpress側の設定変更が必要です。

Twitter Toolsの改修

WordpressプラグインTwitter Toolsは、以下の機能を持っています。

  • Twitterのツイートをブログに投稿(毎日投稿、週1投稿を選択可能)
  • ブログのウィジェットとしてツイートを表示(当サイト右下のものです)
  • ブログにPostしたときに、Twitterに自動告知

この、一番目の機能を使うだけで、週一での投稿は可能です。 ただ、数日分投稿することを考えると、日時表示を付け加えないと機能として問題があります。また、投稿されるHTMLを修正することを考えると、プラグインPHPを若干修正する必要があります。 時刻表示には時間の扱いのバグもあったりで、色々修正する必要がありますし、今年頭のバージョンアップでそれまでの方法が使えなくなったりしましたが、こちらのえびログ様の方法で上手くいきました。

私の場合は、表示内容を変えるために、887行目前後の追加部分に下記の修正をしています。

各ツイートのリンクを取り払い、月日を追加

$output = '<a href="'.aktt_status_url($aktt->twitter_username, $tweet->tw_id).'" class="aktt_tweet_time">' . get_date_from_gmt($tweet->tw_created_at, 'H:i') . '</a>';
$output = '['.get_date_from_gmt($tweet->tw_created_at, 'm-d H:i') . ']';
日付の表示は、週のダイジェストなら必須とおもいますし、リンク外しは、@投稿を表示しないように設定していると、各ツイートへの個別リンクは不要と思いますし、SEOを考えても不自然な状態になってしまうからです。

あと、421-423行の部分を修正すると、個別ツイートをli要素でマークアップせずに全体を1つのp要素にしたりすることも簡単です。企業ツイート等、一貫したテーマのツイートを続けているならば、li要素よりも全体をp要素としたほうがよさそうです。 私は、色々なテーマのツイートを続けているのでli要素のほうが適しているかと思います。

WordPress側の改修

WordpressTwitter Toolsをいれただけでは、ブログのトップがTwitterで埋まる問題は解決できません。 これは、Twitter Toolsでツイートの自動投稿を特定のカテゴリに設定した上で、プラグインFront Page Excluded Categoriesを使えば簡単に解決できます。

RSS配信にツイートまとめを含めないためには、head要素に表示するRSSアドレスから変えてしまいます。 8/17:下にもっといい方法を追記しました。 Wordpressでは、RSS配信の末に『 ?cat=-【カテゴリID】 』をつけると、そのカテゴリIDを除外した記事だけが配信されますので、ヘッダに表示されるRSSをそのように設定します。私の場合は、ツイートのカテゴリIDは11ですので下記のようになります。

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://webweb.jp/blog/feed/?cat=-11" />
<link rel="alternate" type="text/xml" title="RSS .92" href="http://webweb.jp/blog/feed/rss/?cat=-11>" />
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="http://webweb.jp/blog/feed/atom/?cat=-11" />

既に多くのRSS読者がいらっしゃるなど、RSSを変えられない方は上の方法では駄目ですが、その場合は何か別の方法を考えなくてはなりません。プラグインとかあれば、と思うのですが、ちょっと見つかりませんでした。 もし、このブログのRSSを登録されている方がいらっしゃいましたら、登録しなおしてくれると嬉しいです。

8月21日追記:Advanced Category Excluder

カテゴリ等を選んでRSS出力のプラグインを教えていただきました。 Advanced Category Excluderというプラグインで、指定したカテゴリの出力場所を選択できます。ホームやアーカイブRSS出力、検索エンジン向けサイトマップなど、かなり細かく設定できます。これはWordpressCMSとして使う場合も必携ですね。 メールで教えてくださったTさんありがとうございました!

Twitterをブログに投稿するために

上では簡単に書きましたが、たどりつくまではやはり時間がかかりました。

簡単にツイートを理想的にブログにPostできるプラグインとかありましたら、私を含めた大勢に使われると思うのですが。自分でやろうか考えてみましたが、このTwitter Toolsの複雑さを見ると、簡単なことではないようです。 もしも作られる方がいらっしゃいましたら、ぜひご検討ください。必要でしたらアドバイスはさせていただきますので!