先日リリースされたAutomattic社製のJetpack2.0。バージョンアップでWordPressと各種SNSとの連携が強化されたので、その部分を実装のポイントも合わせご紹介します。
目次
Jetpackとは
WordPressのプラグイン「Jetpack」はブログサービスのWordPress.comで使われている機能を、インストール型WordPressでも使える様にプラグイン化されたものです。
WordPress › Jetpack by WordPress.com « WordPress Plugins.
使用するにはプラグインの有効化後、WordPress.comのアカウントと連携させる必要があります。
たくさんの機能が備わっており、バージョンアップの度に増えています。各機能についてはJetpackのサイトなどをご覧ください。
- Jetpack for WordPress.
- Jetpack で WordPress.com クラウドを活用 – ja.naoko.cc.
- Facebook/Twitter/WordPress.com ログイン対応の Jetpack コメントシステム – ja.naoko.cc.
- WordPress.com の便利機能をインストール版に! Jetpack を導入してみた | 8bitodyssey.com.
このブログではJetpack2.0で強化されたSNS連携の部分だけ取り上げます。
共有ボタン
SNSサービスのボタン(ツイートボタンやFacebook Likeボタン)を追加します。
Jetpack有効化後に「設定」メニュー内に「共有設定」が追加されているのでそこで設定を行います。
「利用可能なサービス」にあるSNSのアイコンを「有効化済みのサービス」にドラッグ&ドロップすると、その通りにボタンが並びます。
そして、「ボタン表示」でチェックしたページにのみこれらのボタンが表示されます。自作したカスタム投稿タイプもチェックのみで表示可能なのが便利ですね。
表示されるときはthe_content、the_excerpt フィルターを使って、本文(抜粋)の末尾に追記されます。
なお、各SNSのアカウントを持っていなくてもボタンの設置は行えます。
Jetpack Open Graph Tags
プラグインを有効化すると一部のページの<head>タグ内(wp_headにフック)にOGPのタグが追加されます。特に設定の必要はありません。
なお、OGPのタグが出力される関係は以下の通りです。
ホームあるいはフロントページ(is_home() || is_front_page())
- og:type:blog
- og:title:サイトのタイトル
- og:url:サイトアドレス
- og:description:キャッチフレーズ
- og:site_name:サイトのタイトル
- og:image:なし
投稿者アーカイブ(is_author())
- og:type:author
- og:title:ユーザー(投稿者)の「ブログ上の表示名」
- og:url:投稿者アーカイブのURL
- og:description:ユーザー(投稿者)の「プロフィール情報」
- og:site_name:サイトのタイトル
- og:image:アバター画像
シングルページ(固定ページ、個別投稿ページ、添付ファイルページ、カスタム投稿タイプの個別ページ)(is_singular())
- og:type:article
- og:title:シングルページ(記事)のタイトル
- og:url:シングルページ(記事)のURL
- og:description:抜粋、無ければ本文の冒頭(get_the_excerpt() で処理されている)
- og:site_name:サイトのタイトル
- og:image:優先順位は投稿サムネイル>スライドショーショートコードの画像>ギャラリーショートコードの画像>投稿に添付された画像>投稿内に記述された画像の順
Publicize(パブリサイズ共有)
投稿を公開すると同時に連携したSNSにサイトタイトルと記事URLを投稿します。
Jetpack有効化後に「設定」メニュー内に「共有設定」が追加されているので、事前にSNSアカウントとの連携を行います。
アカウントの持っているSNSサービスの横にある「Add new ○○ connection.」をクリック後、画面の指示に従って連携を行ってください。
ところが、この「Publicize」だけは「投稿」しか対応していません。つまり、カスタム投稿タイプには「Publicize」が出てきません。
これは jetpack/modules/publicize/ui.php の366行目、編集画面にメタボックスを生成する関数post_page_metabox() 内で
if ( 'post' != $post->post_type ) return;
となっていて投稿のみ適用するようになっているからです。
カスタマイズするようなフックも見当たらないので、カスタム投稿タイプを頻繁に利用される方は注意が必要です。
(個人的にはカスタム投稿タイプでもhierarchical = false のものは対応して欲しかった)
既に稼働しているプラグインとバッティングする場合はfunctions.phpで当該コードを除去(remove)するなど注意が必要です。
それをおいても、単体で他にも魅力ある機能が満載ですので積極的に使っていきたいですね。
おまけ
2012年11月20日の下北沢オープンソースカフェのWordPress部で「Jetpack特集」を行うそうです。Ustreamや録画もあるようなので、ご覧になってはいかがでしょうか?