Advertisement

PHPを使って特定の記事やスマホなどの特定条件下に広告などを表示する方法【WordPress対応】

PHP

 

WordPressにはPHPというプログラム言語が使われています。

 

例えば、「デスクトップでは大きな広告を表示したいけど、スマホやタブレットでは小さな広告を表示したい」とか「スマホやタブレットでは表示したくないコンテンツがある」時は

PHPのIF文(条件分岐)を使うことで特定の条件時にプログラムを実行することができます。

 

 

Advertisement

wordpressにはあらかじめPCの時とスマホ・タブレットの時の条件分岐タグ『wp_is_mobile』が用意されています。

 

 

<?php if ( wp_is_mobile() ) : ?>
// スマホ・タブレットで表示したい内容

<?php else: ?>
// PCで表示したい内容

<?php endif; ?>

 

このコードを表示したいところに貼ります。

しかし「ウィジェット」の「カスタム HTML」にはPHPコードが貼れないので、以下の記事を参考にしてウィジェット上でPHPコードが展開できるようにしておきましょう。

 

【PHPプラグインやめました】WordpressのショートコードでPHPファイルを読み込み表示させる方法
これまでWordpressのウィジェットなどでPHPプログラムを表示する際にプラグインを使用してきましたが、セキュリティの問題などもありプラグインの使用をやめることにしてショートコードを使ってPHPを展開することにしました。 ...

 

スマホのみに適用したい時は

 

一方で、最近はタブレットの画面サイズが大きくなってることもあり、「スマホのみ」と「PC・タブレット」で分けたい事もあると思います。その際は、function.phpに関数を追記して新しい条件分岐タグ「is_mobile」を作りましょう。

 

まず、function.phpを開いて以下のコードを貼ります。子テーマを使っている場合は子テーマのを開きます。

function.phpはコードを間違うとサイトが動かなくなりますので必ずFTPでダウンロードしてオフラインで行います。

 

//スマホ表示分岐
function 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']);
}

 

後は条件を適用したい場所に以下のコードを貼ります。

 

<?php if ( is_mobile() ) : ?>
// スマホで表示したい内容

<?php else: ?>
// PC・タブレットで表示したい内容

<?php endif; ?>

 

 

 

特定のカテゴリーやページだけにコンテンツを表示したい時は

 

さらに、特定のカテゴリ記事や固定ページにだけ表示させたいときは、それぞれの条件分岐タグを使います。

 

is_home() 
//メインページに表示する場合

is_single('1')
//シングルページID(特定のブログ記事) '1' に表示する場合

is_page('2')
//固定ページID '2' に表示する場合

in_category('3')
//is ではなく in
//現在の投稿がカテゴリーID 3 に属する場合に true を返す

//('')内にはそれぞれ記事・ページ・カテゴリーのIDかスラッグを指定します。



//例 ブログ記事のページにのみ表示させたい場合


<?php if(is_single()): ?>
//ここにコンテンツを貼る

<?php endif; ?>


//ブログ記事以外のパターンを加える場合は
endifの前に
<?php else: ?>
や
<?php elseif(関数()): ?>
を追加する。

 

関数は複数指定することもできます。

例えば、ブログ記事でかつスマホ・タブレットにのみ表示させたい場合、「and」に当たる「&&」(論理演算子)を使って以下のように書きます。

 

<?php if(is_single() && wp_is_mobile()): ?>
//表示させたいコンテンツを書く

<?php endif; ?>

 

このように関数を組み合わせることによって、様々な条件でのコンテンツの表示を制御することができるようになります。

 

このサイトでも使っているWordpressテーマ「LIQUID PRESS」ならもっと便利です

 

当サイトでも使っているWordpressテーマ「LIQUID PRESS」にはウィジェットにデバイスによる出し分け機能が搭載されています。各ウィジェット毎に、デバイス表示設定を行い、 スマートフォンとPC・タブレットで異なるウィジェットを表示することができます。

 

 

 

PHPが初心者な方でも「LIQUID PRESS」なら簡単に表示分けすることができます。

レスポンシブ対応Wordpressテーマはこちらからどうぞ⇒「LIQUID PRESS」

 

Via: 条件分岐タグ – WordPress Codex 日本語版

PHPWordpressテクニック
Advertisement

プログラマーです。メインはWEB作成をやってます。
生まれも育ちもアスペルガー。心屋仁之助さんの前者後者理論を実践しています。
プロフィール詳細はこちらから

ARMDroidをフォローする
ARMDroidをフォローする
Advertisement
ARMDroid BLOG