解放区在住氷翠 緑の閃光
【解放区在住氷翠 緑の閃光】氷翠のお気楽日記

WP Social Bookmarking Lightの更新

2015-08-26 19:33

PHP > Wordpress > 開発

こんばんは、氷翠です。

さて、タイトルにある通り、「WP Social Bookmarking Light」というプラグインを使ってまして、アップデートが来ていました。
前から来ていたのだけど、このプラグインは氷翠が改造していたので、なかなか手を出していなかったわけです。
とりあえず、時間があったので、今さっき更新しました。

このプラグインはとりあえず何でもかんでもソーシャルのボタンを設置することのできるプラグインなのですが、氷翠がここでほしいのはLINEのタイムラインに投稿するためのボタンがほしい。更に、そのボタンはスマホでアクセスした時のみ表示させたい。
そんなわけで改造をしたのです。

では、改造内容。

WP Social Bookmarking Light」の中には「modules」フォルダがあり、この中に、「content.php」というファイルがあります。このファイルが実際の出力時に使われるHTMLを出力するためのファイルとなります。
まずは、「WP Social Bookmarking Light」フォルダの中に「Mobile_Detect.php」というファイルをコピーします。
このファイルは「http://mobiledetect.net」というサイトで配布されている無料のライブラリで、スマホ、タブレット、PCを判別してくれる便利なライブラリです。
氷翠はこれを利用しています。
で、先ほどの「content.php」を開きます。
最初に出てくる関数「wp_social_bookmarking_light_output」という関数が出てくるはず(2015-08-26確認)なので、その関数の最後の部分を見てみます。

return "<div class='wp_social_bookmarking_light'>{$out}</div><br class='wp_social_bookmarking_light_clear' />";

とまあ、こんな感じになっています。
とりあえず、この部分が最終的な出力を行っているのがわかるので、この部分を改造します。
では、どんな風に改造するかというと…

$out = "<div class='wp_social_bookmarking_light'>{$out}</div><br class='wp_social_bookmarking_light_clear' />";
if(!class_exists("Mobile_Detect")) {
    $mdFile = dirname(dirname(__FILE__)). "/Mobile_Detect.php";
    require_once $mdFile;
}
$md = new Mobile_Detect;
if(!$md->isMobile($_SERVER["HTTP_USER_AGENT"])) {
    $out = "";
}
return $out;

まず1行目、とりあえず、変数に最終的な出力の文字列を代入しておきます。
2行目〜5行目で、スマホなのかどうかを判断するライブラリを読み込みます。このとき、すでに読み込まれていたらエラーとかになるので、一応確認するため「class_exists」関数を使って確認します。
で、6行目で、クラスを呼び出します。
7行目でスマホかどうかを確認。その関数が「isMobile」という関数で、この時に$_SERVERの変数に入っているユーザーエージェントを渡してあげます。
で、その結果が「false」というなら、スマホではないということなので、出力用の変数の中身を空にしてあげます。
もし、その結果が「true」なら出力変数「$out」はそのままにしておき、最後の行で「return」で返します。
すると、スマホでアクセスしたときのみLINE、もしくはその他のソーシャル系のボタンが表示されるというわけです。

氷翠はそのボタンはLINEのみ設定してあるので、LINEのボタンが表示されます。

コメントを残す

メールアドレスが公開されることはありません。