ソーシャルでのシェア増を目的にStinger6にバイラル風シェアボタンを設置した

2018年9月21日ウェブマーケティングStinger6, WordPress, シェア, ソーシャル, バイラル, ボタン

最近ではFacebookとTwitterで広告を始め、ソーシャルでのシェアの導線をそろそろ整えて相乗効果を狙わないとなぁと思っており、昨日思い立って諸々カスタマイズしました。

具体的には、Facebook独自のウィジェットの埋め込みを廃止し、バイラルメディア等で良く見かける「この記事が気になったらいいね!お願いします。」とか、「Twitterで○○をフォローしよう!」といったボタン(?)を設置しました。

※コードの内容はままはっくで公開されているものをそのまま流用させてもらいました。ありがとうございます!

コピペで簡単にバイラル風のシェアボタンを追加しよう!

今回僕が追加したのは、以下の部分。

記事のウィジェットの画像と、Facebookの「いいね!」ボタンの設置、そしてTwitterのフォローボタンを置きました。

以下コードをコピペすれば、できます。

まずは下準備、functions.phpにモバイルかどうか判別する記述を追加(Stinger使用者は既に入っているのでいりません。)

function st_is_mobile() {
	$useragents = array(
		'iPhone', // iPhone
		'iPod', // iPod touch
		'Android.*Mobile', // 1.5+ Android *** Only mobile
		'Windows.*Phone', // *** Windows Phone
		'dream', // Pre 1.5 Android
		'CUPCAKE', // 1.5+ Android
		'blackberry9500', // Storm
		'blackberry9530', // Storm
		'blackberry9520', // Storm v2
		'blackberry9550', // Storm v2
		'blackberry9800', // Torch
		'webOS', // Palm Pre Experimental
		'incognito', // Other iPhone browser
		'webmate' // Other iPhone browser

	);
	$pattern = '/' . implode( '|', $useragents ) . '/i';

	return preg_match( $pattern, $_SERVER['HTTP_USER_AGENT'] );
}

※functions.phpを変更する場合は、必ずバックアップ取っておきましょう。突然ページが真っ白になることもあります。

header.phpの最初のbodyタグの後にFacebook用の記述を追加

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.5&appId=866201090153626";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

WordPressでない場合についても同様で、bodyタグの後に入れておきましょう。

jsの読み込みの関係上、bodyタグ内の最初の方に書いておくのが無難です。

footerに置いておくと、当サイトの場合動かなくなります。

single.phpに記事出力部分を追加

<!-- 記事がよかったらいいね ここから -->
<?php if ( st_is_mobile() ) { //スマホの場合 ?>
      <div class="p-shareButton p-asideList p-shareButton-bottom">
        <div class="p-shareButton__cont">
          <div class="p-shareButton__a-cont">
            <div class="p-shareButton__a-cont__img" style="background-image: url('<?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ?>')"></div>
            <div class="p-shareButton__a-cont__btn">
              <p>この記事が気に入ったらいいね!してくださいね!</p>
              <div class="p-shareButton__fb-cont p-shareButton__fb">
                <div class="fb-like" data-href="https://www.facebook.com/○○" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div>
                <span class="p-shareButton__fb-unable"></span>
              </div>
            </div>
          </div>
        </div>
        <div class="p-asideFollowUs__twitter">
          <div class="p-asideFollowUs__twitter__cont">
            <p class="p-asideFollowUs__twitter__item">Twitterで○○をフォローしよう!</p>
            <a href="https://twitter.com/○○" class="twitter-follow-button p-asideFollowUs__twitter__item" data-show-count="true" data-size="large" data-show-screen-name="false">Follow @tyu2_sem</a>
            <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
          </div>
        </div>
 </div>
<?php } else { //PCの場合 ?>
<div style="padding:10px 0px;"></div>
 <!-- 記事がよかったらいいねPC -->
            <div class="p-entry__push">
              <div class="p-entry__pushThumb" style="background-image: url('<?php echo wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ?>')"></div>
              <div class="p-entry__pushLike">
                <p>この記事が気に入ったら<br>いいね!してくださいね!</p>
                <div class="p-entry__pushButton">
<div class="fb-like" data-href="https://www.facebook.com/○○" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div>
                </div>
                <p class="p-entry__note">最新のアドテク・SEOの情報をお届けします</p>
              </div>
            </div>
                        <div class="p-entry__tw-follow">
              <div class="p-entry__tw-follow__cont">
                <p class="p-entry__tw-follow__item">Twitterで○○をフォローしよう!</p>
                <a href="https://twitter.com/○○" class="twitter-follow-button p-entry__tw-follow__item" data-show-count="true" data-size="large" data-show-screen-name="false">Follow @tyu2_sem</a>
                <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
              </div>
</div>
<?php } ?>
 <!-- 記事がよかったらいいね ここまで -->

○○の部分は適当に変えてください。

後はCSSで綺麗に整形しよう

/*記事がよかったら、いいねスマホ*/
.p-shareButton-bottom {
    padding-bottom: 15px;
    overflow: hidden;
}
.p-shareButton__buttons {
    font-weight: 700;
    color: #fff;
    font-size: 13px;
    text-align: center;
}
.p-shareButton__buttons>li {
    padding-left: 3px;
    padding-right: 4px;
}
.p-shareButton__buttons .c-btn {
    padding: 8px 0;
    border-radius: 2px;
}
.p-shareButton__buttons .c-ico {
    display: block;
    margin: auto auto 5px;
}
.p-shareButton__fb {
    -webkit-transform: scale(1.2);
    -ms-transform: scale(1.2);
    transform: scale(1.2);
    width: 115px;
}
.p-shareButton__fb-cont {
    position: relative;
    width: 108px;
    margin: 0 auto;
}
.p-shareButton__fb-unable {
    position: absolute;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
}
.p-shareButton__cont {
    margin: 15px 0 0;
}
.p-shareButton__a-cont {
    background: #2e2e2e;
    display: table;
    width: 100%;
}
.p-shareButton__a-cont__img {
    display: table-cell;
    min-width: 130px;
    -webkit-background-size: cover;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.p-shareButton__a-cont__btn {
    display: table-cell;
    padding: 12px;
    text-align: center;
}
.p-shareButton__a-cont__btn p {
    font-size: 12px;
    color: #fff;
    font-weight: 700;
    padding: 5px 0 15px;
    line-height: 1.4;
    margin-bottom: 0px;
}
.p-asideFollowUs__twitter {
    border: 2px solid #e6e6e6;
    margin-top: 15px;
    padding: 12px 0;
}
.p-asideFollowUs__twitter__cont {
    text-align: center;
    font-size: 13px;
    color: #252525;
    font-weight: 700;
}
.p-asideFollowUs__twitter__item {
    display: inline-block;
    vertical-align: middle;
    margin: 0 2px;
}

/*記事がよかったら、いいねPC*/
.p-entry__push {
    margin-bottom: 20px;
    display: table;
    table-layout: fix;
    width: 100%;
    background-color: #2b2b2b;
    color: #fff;
}
.p-entry__pushThumb {
    display: table-cell;
    min-width: 240px;
    background-position: center;
background-size:cover;
}
.p-entry__pushLike {
    display: table-cell;
    padding: 20px;
    text-align: center;
    vertical-align: middle;
    line-height: 1.4;
    font-size: 20px;
}
.p-entry__pushButton {
    margin-top: 15px;
    display: inline-block;
    width: 200px;
    height: 40px;
    line-height: 40px;
    -webkit-transform: scale(1.2);
    -ms-transform: scale(1.2);
    transform: scale(1.2);
}
.p-entry__pushButtonLike {
    line-height: 1;
}
.p-entry__note {
    margin-top: 15px;
    font-size: 12px;
    color: #999;
}
.p-entry__tw-follow {
    margin-bottom: 10px;
    background: #f4f4f4;
    width: 100%;
    padding: 15px 0;
}
.p-entry__tw-follow__cont {
    text-align: center;
    font-size: 15px;
    color: #252525;
}
.p-entry__tw-follow__item {
    display: inline-block;
    vertical-align: middle;
    margin: 0 15px;
}

これだけ。あっという間に実装終了しました。

Facebook公式のウィジェットだとなぜか横幅が500px以上広がらなかったり、Twitter公式ウィジェットだと謎のh1タグが挿入されるので今の実装内容で大満足です。