WordPressプラグイン「Jetpack」 | SNS共有ボタンを好きな場所に表示

Jetpack共有ボタン アイコンJetpack共有ボタン 公式ボタンJetpack共有ボタン アイコンとテキスト

WordPressプラグイン「Jetpack」を使うと、上のような共有ボタンを簡単に設置できます。
ただ標準のままだとボタンを配置する場所を自由自在に選べるというわけではありません。

調べてみると、add_filterにて「the_content」「the_excerpt」にフックされているようなので、テンプレート内でthe_content()the_excerpt()を使うと、その最後に追加されています。

 //テンプレートのループ内で以下を使うとその直後に表示
 the_excerpt();
 the_content();

まずはデフォルト表示を消す

表示したいのそこじゃない!」という場合には、まずはフックからremove_filterではずしてあげる必要があります。

プラグイン本家サイトのページ(英語)
Moving Sharing Icons — Jetpack for WordPress

上の英語ページではfucntion.php内に以下を追加するように書かれています。(Wordpressの「いいね」ボタンも含まれていますね)

function jptweak_remove_share() {
    remove_filter( 'the_content', 'sharing_display',19 );
    remove_filter( 'the_excerpt', 'sharing_display',19 );
    if ( class_exists( 'Jetpack_Likes' ) ) {
        remove_filter( 'the_content', array( Jetpack_Likes::init(), 'post_likes' ), 30, 1 );
    }
}
add_action( 'loop_start', 'jptweak_remove_share' );

SNS共有ボタンだけならば、以下でもいけるんじゃないでしょうか。

if ( function_exists( 'sharing_display' ) ) remove_filter( 'the_content', 'sharing_display', 19 ); 
if ( function_exists( 'sharing_display' ) ) remove_filter( 'the_excerpt', 'sharing_display', 19 ); 

表示したい場所にコード追加

そして、表示させたい場所(テンプレート)に以下を追加するだけです。

if ( function_exists( 'sharing_display' ) ) {
    sharing_display( '', true );
}

sharing_display( '', true );の引数の説明をしているページを見つけられなかったのですが、いろいろ試したところ、第1引数は「ラベル」テキストですね。デフォルトでは「共有:」となっている部分のようです。
第2引数は、どうやら「表示」するのか「取得」するのか、のようです。私のテスト環境ではtrueで表示されました。

Wordpress, 備忘録 | , |