ソーシャルリンクモジュールは、パブリサイズに連携した一部のサービスをテーマのソーシャルメディア統合機能のプロフィールリンクとして選べるようにします。利用するには以下が必要です。
- 利用中のテーマの
add_theme_support()
機能を通じてテーマサポートを追加する。 - テーマ変更 API を使って、データをテーマのテンプレートに導入する。
サポートの追加
ソーシャルリンクの追加は、ポストのサムネイルやエディタのスタイルに対するサポートを追加することによく似ています。これは、 add_theme_support()
を活用するためです。
add_theme_support()
を呼び出す際、配列に対して、サポートされているサービスのスラッグを第2引数として提供することで、ソーシャルリンクはご使用のテーマが必要としている情報だけを渡します。ソーシャルリンクは、現在次の4つのサービスにのみ対応しています。Facebook、Twitter、LinkedIn、そしてTumblrです。各テーマはそれぞれ異なるものであり、特定のテーマはすべてのサービスに対応していない可能性があるので、テーマはサービスを指定する必要があります。
add_theme_support( 'social-links', array( 'facebook', 'twitter', 'linkedin', 'google_plus', 'tumblr', ) );
情報の利用
ソーシャルリンクは、 Theme Modifications API を通じてこの情報を利用可能にします。この方法によると、テーマは get_theme_mod()
の呼び出すことでこの情報を取得でき、これを活用することができます。テーマ製作者として、あなたはユーザーが利用前に実際にそのサービスへリンクを設定しているかどうかを確認したいというのが常でしょう。一貫性のあるデータ型を取り扱いたい場合、 false
というコアの初期値に頼るか、あるいは空の文字列を第2引数として渡すことができます。私たちはテーマ変更の名称を 'jetpack'
として接頭辞をつけました。これは、サービス名称だけを使っている、その他のプラグインやテーマの機能と衝突しないようにするためです。URLが設定されているかどうか確認した後の、テンプレートファイルへの実装がどう表示されるかを紹介します。
<a href="<?php echo esc_url( get_theme_mod( 'jetpack-facebook' ) ); ?>"> <?php _e( 'Facebook', 'textdomain' ); ?> </a>
get_theme_mod()
を通じてデータを取得することはできますが、これは実際は theme mod としてではなく Jetpack オプションにシリアル化された値として保存されていることに注意してください。私たちはただ裏側でフィルターを使い、 get_theme_mod()
が開発者にとってアクセスしやすいものになるようにしているのです。これにより、あなたは、利用者が Jetpack をインストールしていない場合には壊れてしまうようなカスタム機能を使う必要がなくなります。