WordPressをハッシュタグ付きでTwitter投稿する(半自動)

今までWordpressの記事書いたら、自分でハッシュタグとか追加してTwitterに投稿してました。過去記事ランダム投稿をはじめようと思ったので、今のうちにカスタムフィールドとかでハッシュタグ管理して、記事のTweetボタンですぐ投稿できるように改造してみます。
あ、公開時に自動投稿はしません。 ちょっと怖いので…あくまで半自動です。

準備:カスタムフィールドを設定する。

Wordpressの投稿画面で、カスタムフィールドを設定する。

カスタムフィールド名:post_hashtag
内容:#ハッシュタグ1 #ハッシュタグ2

とか。そのままTwitterに出力するから、間はスペースで区切ります。

functions.phpにハッシュタグを返す関数を記述する

これはカスタムフィールドを取得するコードをすでに使っていたのでそれの応用。
//ハッシュタグ取得
function get_hashtag( $postID ) {
    $hashtag_key = 'post_hashtag';
    $hashtag     = get_post_meta( $postID, $hashtag_key, true );//カスタムフィールド「post_hashtag」の文字列を取得
    if ( $hashtag == '' ) {
        return "";						//カスタムフィールドがないか、空の時はなにもしない。
    }
 
	$hashtag = strip_tags($hashtag);	//万が一ハッシュタグにタグとか入ってたら不味いからきれいにする。

    return urlencode("\n" .$hashtag);	//改行+ハッシュタグをURLエンコード
}
カスタムフィールドが空の時の判定も一応書いてありますが……こういうのって戻り値なくてもいいのかな?って思ったけど、怖いからそれっぽく書いておきました。あとで挙動追加したくなった時にも楽ですしねー。 あと最後はTwitter投稿用にURLエンコードもしておきます。ハッシュタグの前に改行入れてあるけど、この辺は好みで変えましょう。

記事のTwitter投稿ボタンに、関数を仕込む

Twitter投稿ボタンは<A>タグで書いているので、そこに先ほどの関数をいれて、

記事タイトル
#ハッシュタグ1 #ハッシュタグ2... 記事URL

ってなるように。
<?php
$url_encode=urlencode(get_permalink());
$title_encode=urlencode(get_the_title());
?>
<a class="icon-twitter" href="http://twitter.com/share?text=<?php echo $title_encode; echo get_hashtag(get_the_ID()); ?>&url=<?php echo $url_encode; ?>" target="_blank"></a>
あとは記事書いたときにカスタムフィールドにハッシュタグも入れておけば、公開時にツイートボタン押すだけでOKですね。まぁでもこのハッシュタグ決めるのが一番大変なんですけどね……。

おまけ:Facebook連動、過去記事ランダムツイート

Twitterは投稿したけど、Facebookページには投稿忘れてたってことが頻繁にあったので、ついでにFacebookと連動しました。これで上記のツイートボタン押すだけでFacebook投稿も完了できます。
やり方は、Twitter側の「設定とプライバシー」の「アプリ連携」から。
接続ボタンを押すと、「リツイートをFacebookに投稿する」「Facebookプロフィールに投稿する」みたいなのがありますが、これにはチェックは入れないで。
「あなたのページへの投稿を許可」
というのがあるので、その横の 「許可」というテキストリンクをクリック する。
そうするとFacebookページを選べるドロップダウンリストが出てきます。
なぜこれだけテキストリンクなんでしょうか? ちょっとわかりにくい。


あと過去記事ランダム投稿の件は、さすがにプラグインを使いました。「Revive Old Post」(元Tweet Old Post)ってやつです。これを使うと、カスタムフィールドもくっつけられるので便利です。


これでSNS連携はひとまず落ち着いたと思いたい……。