WP Social Bookmarking Lightは管理画面から表示させたいソーシャルブックマークを選ぶだけで簡単にショーシャルブックマークのボタンを設置できるWordPressのプラグインです。
簡単に使えるように管理画面の設定でブックマークボタンを表示させる場所を選べるのですが、個別記事の上下かページでも表示させるかどうかの選択肢しかありません。
なので、テンプレートに記述して好きな位置に表示させることができるようにしたいと思います。
※この記事はプラグインが変更されると役に立たなくなる可能性があります
ソーシャルブックマークボタンを表示させるコード
plugins/wp-social-bookmarking-light/modules/content.php
というファイルにプラグインを出力するwp_social_bookmarking_light_output_e
という関数があったのでコレを利用します。
テンプレートの好きなところに下記のコードを記述すれば、管理画面で設定しているソーシャルブックマークが出力されます。
<?php // ソーシャルブックマークボタンを出力する if( function_exists('wp_social_bookmarking_light_output_e') ) { wp_social_bookmarking_light_output_e(); }
簡単です☆
ただし、この方法ではそのまま出力されてしまうので「一度変数にして他のものとまとめて出力したい! 」という時には使えません。
同じくplugins/wp-social-bookmarking-light/modules/content.php
を見ているとソーシャルブックマークボタンを出力するwp_social_bookmarking_light_output_e()
内でwp_social_bookmarking_light_output
という関数が呼ばれており、この子がブックマークボタンを表示させるコードを返しているようでした。この関数を使えば変数で受け取れそうです。
ソーシャルブックマークボタンを表示させるコードを変数で受け取る方法
次のコードをfunction.php
に記述すれば好きなテンプレートでget_my_social_bookmark()
を呼べばコードで変数で受け取る事ができます。
<?php // function.php function get_my_social_bookmark() { if( function_exists('wp_social_bookmarking_light_output') ) { $options = wp_social_bookmarking_light_options(); $services = $options['services']; return wp_social_bookmarking_light_output($services, null, null); } else { return ''; } }
ブックマークを出力/取得できる関数にまとめる。
せっかくなので、ソーシャルブックマークボタンを出力も変数で取得もできる関数にまとめちゃいます。
function.php
に次のコードを書きます。
<?php // function.php function my_social_bookmark($echo = true) { if( $echo && function_exists('wp_social_bookmarking_light_output_e') ) { wp_social_bookmarking_light_output_e(); } else if( function_exists('wp_social_bookmarking_light_output') ) { $options = wp_social_bookmarking_light_options(); $services = $options['services']; return wp_social_bookmarking_light_output($services, null, null); } }
1. ソーシャルブックマークボタンを出力する
テンプレートファイルに下記コードを書けばOKです
<?php my_social_bookmark(); ?>
2. ソーシャルブックマークボタンのコードを変数で受け取る テンプレートファイルに下記コードを書いて変数を好きな所で出力してください。
<?php $bookmark = my_social_bookmark(false); // なにか処理 // ソーシャルブックマークボタンを出力 echo $bookmark; ?>
記事中にソーシャルブックマークボタンを表示させたい。
ショートコードとして登録しておけば記事中にも使えそうです。
次のコードをfunction.php
に記述してショートコードを登録します。
<?php // function.php function my_social_bookmark_buttons() { if (function_exists("wp_social_bookmarking_light_output_e")) { wp_social_bookmarking_light_output_e(); } } add_shortcode('socialBtns', 'my_social_bookmark_buttons');
あとは記事中の好きなところに次のショートコードを記述すればOK
[socialBtns]
WP Social Bookmarking Light便利ですね。
いつもソーシャルボタンは自作で記述していたのですが、このプラグインを使えば納品しちゃってクライアントさんが更新するようになっても簡単にブックマークの種類を変えられますし、ショートコードを用意しておけば長めの記事メインのサイトでも記事の作成者が好きな所にソーシャルブックマークボタンを出せるので記事のシェアがしやすく工夫することもできるようになりそうです!
[参考]
- WP Social Bookmarking Light の設定方法
- WP Social Bookmarking Lightをもっと便利に使う方法 – Cntlog
- using shortcodes everywhere - Stephanie Leary
追記(2015 04.21)
WP Social Bookmarking Lightで表示されるボタンはデフォルト設定だと今開いているページのURLがボタンに割り当てられるみたいで、作った関数を利用してArchive
テンプレートページなどで各記事にボタンを表示させても、すべてアーカイブページのソーシャルブックマークボタンになってしまい該当記事のボタンになっていませんでした。
wp_social_bookmarking_light_output()
, wp_social_bookmarking_light_output_e()
の第2引数にリンク先のurlを第3引数にタイトルを渡すことでソーシャルブックマークボタンのリンクとタイトルをコントロールすることができます。
ブックマークを出力/取得できる関数にまとめる。で作った関数を修正
<?php // function.php // @param $link リンク先のURL // @param $title リンク先のタイトル function my_social_bookmark($echo = true, $link = null, $title = null) { if( $echo && function_exists('wp_social_bookmarking_light_output_e') ) { wp_social_bookmarking_light_output_e(null, $link = null, $title = null); } else if( function_exists('wp_social_bookmarking_light_output') ) { $options = wp_social_bookmarking_light_options(); $services = $options['services']; return wp_social_bookmarking_light_output($services, $link, $title); } }
Archive
テンプレートのループ内で使う時にget_the_permalink()
やget_the_title()
でリンクとタイトルを渡してあげると各記事のソーシャルブックマークボタンが表示されるようになります。
Archiveテンプレートのループ内で使うサンプル
// archive.php <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> // ソーシャルブックマークボタンを表示 <?php $permalink = get_the_permalink(); $title = get_the_title(); // 変数にして使う場合は第1引数をfalseにしてください my_social_bookmark(true, $permalink, $title); ?> <?php endwhile; ?> <?php endif; ?>
- アーティスト: 沢井美空
- 出版社/メーカー: SMR
- 発売日: 2015/01/28
- メディア: CD
- この商品を含むブログ (4件) を見る