プラグインを使わずにSNSボタンを好きな場所に表示させる

プラグインを使わずにSNSボタンを好きな場所に表示する

ソーシャルメディアボタンを、プラグインを使わずに記事内の好きな場所に設置したいと思い、調べてみました。

このブログで使っているTCDテンプレート「AN」では、ソーシャルメディアボタンは、bookmark.phpが読みこまれるようになっています。なので、記事内の任意の場所にbookmark.phpというファイルを読み込むことにしました。

カスタマイズをする場合の注意
必ずバックアップを取って自己責任でお願いします。もし何らかのトラブル等がおこっても、私は一切の責任を負えませんのでご了承ください。

phpファイルを記事内の任意の場所で読み込む方法

phpファイルを記事内の任意の場所で読み込むには、ショートコードを使いますので、ショートコードを有効にさせるためのコードを、functions.phpに追加します。

functions.phpは、ちょっとの記述ミスで、驚きの白さを見せてしまいますので、コードを追加する際はお気をつけください。

//phpファイルをショートコードで読み込むためのコード
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}
 
add_shortcode('myphp', 'Include_my_php');

そして、記事内の任意の場所に以下のショートコードを書きます。

今回は、bookmark.phpを読み込むので[[myphp file=’bookmark’]]と書きます。もし、hoge.phpというファイルを読み込む場合は、[[myphp file=’hoge’]]と書いてください。

<p>じゃあ、説明するれすよ!これは「TALジャンピングサービス」!!<br />
大人間は重いので飛ぶ事はできません!!</p>
[[myphp file='bookmark']]
<p>時間もない事ですし!!とりあえず飛んでくださーい!!</p>
<p><a href="http://○○">広告コード</a></p>

これで、「大人間は重いので飛ぶ事はできません!!」という文章の次に、ソーシャルボタンが表示されます。下図のようなイメージです。

SNSボタン配置イメージ

functions.phpのどこに追加するの?

テーマをカスタマイズをしようと思った時にいろいろ調べていると、「functions.phpに追加します」という文章をよく見かけます。実際に、私も先ほど書きました(笑)

「functions.phpにコードを追加します」と言われた時、どこに追加すればいいのか、コード挿入の目安となる位置を書いておきます。phpファイルに書かれている関数は、テーマによって違いますので、一概に「ここに追加して」とは言えないことをご了承ください。

まず、一番わかりやすいと思うのが、phpファイルの1行目に必ず書いてあるphpの開始タグ<?phpのすぐ下です。

変更前

<?php

// 言語ファイルの読み込み --------------------------------------------------------------------------------
load_textdomain('tcd-w', dirname(__FILE__).'/languages/' . get_locale() . '.mo');

変更後

<?php

//phpファイルをショートコードで読み込むためのコード
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}
 
add_shortcode('myphp', 'Include_my_php');

// 言語ファイルの読み込み --------------------------------------------------------------------------------
load_textdomain('tcd-w', dirname(__FILE__).'/languages/' . get_locale() . '.mo');

また、最終行に書いてある<?php } ?>の波括弧「}」の後、phpの終了タグ「?>」の前に書いても大丈夫です。

変更前

<?php } ?>

変更後

<?php }

//phpファイルをショートコードで読み込むためのコード
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}

add_shortcode('myphp', 'Include_my_php');

?>

phpがよくわかっていない者(←私w)からすると、「追加して」と言われてもどこに追加すればいいかで悩むんですよね(汗)それで見つけたのが、りくまさん(@rikuma_)の記事でした。

りくまさんの記事を読んで、機能と機能のあいだに追加すればいいという事がわかり、このTCDテンプレートで上手く表示できる場所、真っ白になってしまう場所を探しました。下図は、挿入しても大丈夫だったところ、ダメだったところです。

コード挿入位置の目安

デフォルトで表示されるSNSボタンを消す

最後に、投稿ページでは、SNSボタンが記事下に自動的に表示されるようになっていますので、これを表示されないようにします。

変更箇所は、single.phpです。SNSボタンを表示する1行をまるっと消します。

  <?php if($options['show_bookmark']) { include('bookmark.php'); };?>

最後に

TCDテンプレートの場合、テーマオプションに広告コードをいれておけば、自動で記事下に広告を入れられるようになってます。なので、投稿ページで記事を書くと、記事本文 → ソーシャルメディアボタン → 広告、という順番で表示されます。

私の場合、記事下の広告は記事毎に変わる(変えたい)ため、テーマオプションで入れていません。毎回、記事毎に広告コードをいれているため、記事本文 + 広告 → ソーシャルメディアボタンの順番になってしまいます。

記事のすぐ下をアフィリエイトリンクにするか、ソーシャルメディアボタンにするかで選択肢は変わるのですが、私は、記事下にまずソーシャルメディアボタンを置くようにしているから、この方法にしました。

WordPressテーマ「AN (tcd014)」

関連記事

コメント

  • トラックバックは利用できません。
  • コメント (0)
  1. この記事へのコメントはありません。

サイト内検索

おすすめ記事

ページ上部へ戻る