WordPressの人気プラグイン「ExUnit(VK All in One Expantion Unit)」のSNSシェアボタンは、標準では記事本文の下部に表示されます。しかし、場合によっては記事の途中や別の場所に表示したいこともありますよね。

今回は、ExUnit(VK All in One Expantion Unit)のSNSシェアボタンの表示場所を自由に変更する方法を解説します。

アクションフックとは?

まず、理解しておきたいのが「アクションフック」という概念です。

アクションフックとは、WordPressが用意している「特定のタイミングで処理を実行できる場所」のことです。WordPress側が処理の流れの中に用意した「引っ掛ける場所」に、独自の処理を挿入できる仕組みです。

代表的なアクションフック:

  • wp_head - ヘッダー内で実行
  • wp_footer - フッター内で実行
  • the_content - 投稿内容の表示時に実行

SNSシェアボタンの表示場所変更方法

ステップ1:ExUnit(VK All in One Expantion Unit)設定画面での設定

  1. WordPress管理画面で「ExUnit メイン設定」を開く
  2. 「SNS」タブを選択
  3. 「表示場所(オプション)」欄に vkSocialSet と入力
  4. 設定を保存

この設定により、標準の表示位置ではなく、アクションフック経由での表示に切り替わります。

ステップ2:テンプレートファイルにコードを追加

表示したい場所(例:single.php)に以下のコードを追加します:

<?php if (has_action('vkSocialSet')) {
    do_action('vkSocialSet');
} ?>

どうしてこのコードで変更されるのか?

このコードが機能する理由を順番に説明します:

1. アクションフックの登録

ExUnit(VK All in One Expantion Unit)の設定画面で vkSocialSet を指定すると、プラグインが内部的に以下のような処理を行います:

add_action('vkSocialSet', 'sns_share_button_display_function');

これで「vkSocialSetというアクションフックが実行されたとき、SNSシェアボタンを表示する」という登録が完了します。

2. アクションフックの実行

テンプレートファイルで do_action('vkSocialSet') を記述すると:

do_action('vkSocialSet'); // 「vkSocialSetに登録された処理を実行して」という指示

WordPressが「vkSocialSetに登録されている処理(SNSシェアボタンの表示)」を実行します。

3. 結果

指定した場所にSNSシェアボタンが表示されます。

エラー回避用のコード

プラグインが無効になったり削除されたりすると、do_action('vkSocialSet') を実行してもエラーは出ませんが、念のため安全な書き方をしておくことをおすすめします:

<?php if (has_action('vkSocialSet')) {
    do_action('vkSocialSet');
} ?>

has_action()の役割

  • has_action('vkSocialSet') は「vkSocialSetアクションフックに何かしらの処理が登録されているか」をチェック
  • 登録されている場合のみ do_action() を実行
  • プラグインが無効でも安全にページが表示される

実際の使用例

記事タイトルの直下にSNSシェアボタンを表示したい場合:

<h1 class="post-title">
    <span><?php the_title(); ?></span>
</h1>

<!-- ここにSNSシェアボタンを追加 -->
<?php if (has_action('vkSocialSet')) {
    do_action('vkSocialSet');
} ?>

<div class="post-content">
    <?php the_content(); ?>
</div>

この方法により、記事の途中や複数箇所など、自由な場所にSNSシェアボタンを配置できるようになります。