「かっこいい・かわいい・おしゃれ」が大好きな1990年生まれ、神奈川県出身。
MusicLover
無料で洋楽が聞ける音楽アプリ
CalCal Lite
給料計算が出来るシフト管理アプリ

前回、facebook,twitter,hatebuのソーシャルカウントを取得する方法を紹介しました。これは、カウントを取得するだけで、そこからシェアすることは出来ませんでした。今回は、シェア機能を付け加えてみたので、その際のポイントを紹介したいと思います。

純正のソーシャルボタンって結構重たくないですか?記事一覧ページにソーシャルボタンを1つずつ設置してしまうと、読み込みに支障が出るなと思ったのですます。ただ、それだけ。
今回は、設置する際のポイントという事でデザイン、カウントの取得は割愛させていただきます。以下を参照してくれればとおもいます。
Tweet数、いいね数、はてブ数をjQueryのAjaxで取得する方法。 | MasterPeace21
まず、シェアする時には基本的にはURLにリンクとタイトルをパラメータとして入力するのですが、その際に日本語などが含まれていると動作しない場合がありますので文字列を先にエンコードする必要があります。
ボタンを設置する前の場所に以下のコードを設置します。
<?php
$url = get_permalink(); //リンクを$urlに格納
$_url = urlencode($url); // 格納された$urlをエンコードして$_urlに格納
$title = the_title('','', false); //タイトルを$titleに格納
$_title = urlencode($title); // 格納された$titleをエンコードして$_titleに格納
?>
ちょっと専門的な話になってしまいますが、the_title()の引数に”,”,falseを入れる事で、文字列として変数に格納してくれます。これを指定しないと実際にページ上にタイトルが出力されてしまうので注意してください。
ツイートするための、URLは以下の通りです。パラメータとしてURL(<!URL!>)とタイトル(<!TITLE!>)を渡しているのがわかりますね。
http://twitter.com/intent/tweet?url=<!url!>&text=<!title!>
これを先ほど指定した変数の記法で書くとこうなります。
http://twitter.com/intent/tweet?url=<?php echo $_url;?>&text=<?php echo $_title;?>
echoというのは変数に格納されたものを出力するという意味です。これを使って、画像をクリックした時にTweetするようにするには、下のような書き方になります。
<a href="http://twitter.com/intent/tweet?url=<?php echo $_url;?>&text=<?php echo $_title;?>" target="_blank"> <img src="画像のリンク"> </a>
先ほどの記法がわかれば、FacebookのShareボタンも簡単です。ただ、「いいね」ではなくシェアになっている点だけ注意してください。
http://www.facebook.com/sharer.php?src=bm&u=<?php echo $_url;?>&t=<?php echo $_title;?>
これも同じですね。
http://b.hatena.ne.jp/add?mode=confirm&url=<?php echo $_url;?>&title=<?php echo $_title;?>
基本的にURLとしてパラメータを指定してhref属性に入れてあげるだけです。
今回指定してあげた、URLだと別タブで開かれてしまう点が気になってしまいます。そこで、別Windowで開くようにしてあげる事で、より純正に近い動作に近づけたいとおもいます。
そのためにはonclick属性(クリックした時の動作)にJavaScriptを追加してあげれば良いのです。
onclick="window.open('開くURL', '', 'width=新しいWindowの横幅,height=新しいWindowの縦幅'); return false;"
実際に、Facebookボタンにこれを追記してみると、こんな感じになります。
<a href="http://www.facebook.com/sharer.php?src=bm&u=<?php echo $_url;?>&t=<?php echo $_title;?>" target="_blank" onclick="window.open('http://www.facebook.com/sharer.php?src=bm&u=<?php echo $_url;?>&t=<?php echo $_title;?>', '', 'width=500,height=400'); return false">
<img src="画像のURL">
</a>
以下のように新しいWindowで開かれ良い感じになったでしょう。

おそらく、Twitterはコレを指定しなくてもいいようになってると思いますので、残りのはてブに同じようにonclick属性をしてあげると完成です。
純正のソーシャルボタンを使っていて動作が重たいなぁ、など感じた方は是非実践してみてください。
Docomoショップのお姉さんに聞いたAndroidのバッテリー消費を低減させる3つの方法 posted on 2012/11/06
スマホで撮った写真をセブン・イレブンで24時間印刷できる「ネットプリント」を試す! posted on 2012/11/26
iPhoneに入っている音楽の歌詞を表示してくれるアプリ2選! posted on 2013/06/21
【CSS】Positionのrelativeとabsoluteを用いて、画像に文字列を重ねる方法 posted on 2013/03/30
PCにあるファイルを簡単にiPhoneで見れて共有できる「Quik.io」が神アプリすぎて素晴らしい! posted on 2013/02/12
どこでもDVDを楽しめる!REGZAポータブルDVDプレイヤー「SD-P77S」を買ってみた。 posted on 2013/07/26
【iTunes整理術】同じアルバムはひとつに!アートワークを取得してかっこ良く! posted on 2013/01/07
Instagramで本格的な写真をアップするなら「正方形さん」でトリミングを防ごう! posted on 2013/01/11
外出先からでも自宅のMacにファイル共有・画面共有する方法! posted on 2012/11/27
BootCampかParallels・VMWareで迷ったら、とりあえずBootCamp入れとけという話 posted on 2013/04/03
ファミマで売ってたmicroUSB to LightningCable変換アダプタを試す。 posted on 2013/08/07
【XFactor2012】神の歌声を持つスーパーマーケット店員のジャーメイン・ダグラスが凄い! posted on 2012/12/27
LINEのグループ間でアルバムを共有・編集できる「LINEアルバム」が便利! posted on 2013/09/25
どこのWi-Fiスポットがいいのかな?docomo,Softbank,Wi2で速度比較してみたよ。 posted on 2012/11/18
docomoユーザーなら絶対に使うべき!docomo端末以外でも使え永久無料なdocomoWi-Fiが熱い!! posted on 2012/11/18
