[WordPress] Twitter Toolsの後継プラグイン「Social」と、zenbackウィジェットを共存させる

再調査してみた

以前、Social を有効にすると、zenbackウィジェットが表示されなくなるという件について、記事を書きました。

[WordPress] Twitter Toolsの後継プラグイン「Social plugin」を有効化すると、zenbackウィジェットが表示されなくなる?

僅かながら反応があり、何かしら解決策が提示できればなぁ、と思いつつも放置プレイ…あれよあれよと時間が過ぎ、年をまたいでしまった今日この頃。

記事へのアクセス自体も結構あるので、このままではzenbackの中の人にも何か悪い。
というわけで、今回改めて調べてみました。

Socialを有効にするとできること

Socialを有効にすると、WordPressアカウントに加え、Twitter、facebookアカウントで記事へのコメントできるようになります。

そういった意味では、コメント投稿の敷居が少し下がるのではないかと。
たぶん。おそらく。きっと。

あと記事投稿時に、Twitter、facebookアカウントで自動ポストできるようになります。僕の場合、この機能は別プラグインで代替しているので、説明は割愛させていただきます。

解決編

結論から言うと、Social と zenbackウィジェットを、無事に共存させることができました。調査の経緯を含め、対応策を記載しておきます。

現状把握

ウチのブログでは zenbackのコードを、comments.php の先頭に入れていました。

人によっては comments.php に入れても動作せず、single.php に入れたら動いたとか、プラグイン入れたら動いたとか、色々なパターンがあるみたいです。ブログの構成とかに依存するのでしょうか?

調査

まずは Social を有効にした状態で、comments.php を色々いじってみました。

comments.php で単純に echo しても、何も出力されなかったり、有効状態では何も変化がないことが分かりました。おそらくコメント機能一式を、Social が取って代わるような挙動をしている。

そう考えると、comments.php にコードを入れている限り、zenbackウィジェットが表示されないというのも、辻褄が合うかと。

ひとまずこの仮定の元、解決策を講じてみました。

zenbackコードを入れる場所を変えてみた

というわけで、zenbackのコードを別のファイルに移して、動作を見ることにしました。
ちなみに理想形は以下の並びです。

  1. 記事本文
  2. zenbackウィジェット
  3. コメント欄
解決

試行錯誤した挙句、post-single.php に zenbackのコードを入れると、上記の並びでウィジェットが表示できるようになりました。

具体的には、post-single.php 内のコメントテンプレートの出力前に、zenbackのコードを入れるようにしました。

post-single.php
    </div><!-- Post ID <?php the_ID(); ?> -->

    <!-- ここに zenbackのコードを入れる -->

    <?php
        if(comments_open( get_the_ID() )) {
            comments_template('', true);
        }
    ?>

使用しているテーマや構成によっては、post-single.php で解決できないかもしれません。とりあえず、ウチの環境ではこれで解決できました、という報告です。

もし同じ現象で困っている方が居らっしゃいましたら、試してみてください。
もちろん、バックアップはしておいてくださいね。

まとめ

共存できたのは良いけど、実用的かどうかはまた別の話。
ちょっとゴチャゴチャし過ぎかな…

ソーシャルボタンや関連記事の表示周りは、最終的には自作できるようになりたいですね。

WordPressデザインブック3.x対応
エビスコム
ソシム
売り上げランキング: 17,954