Okamoto Hidetaka様
ありがとうございます。助かります。
kurakuramenさん
求められる環境によりますが
ipad等のタブレットをPCと認識させるかモバイル端末と認識させるかでちょっと異なります。
ipad等のタブレット=モバイル端末ならばOkamoto Hidetakaさんのおっしゃる通り
「wp_is_mobile」がベストかと思われます。
ただ、ipad等のタブレット=PCと認識したい場合はfunctions.phpに定義が必要です。
function is_mobile(){
$useragents = array(
'iPhone', // iPhone
'iPod', // iPod touch
'Android', // 1.5+ Android
'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
'phone' // Other phone
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
って感じで行うとipadは含みません。
ユーザーエージェントの定義は頻繁にアップデートされますので
再定義(追加)が必要です。
使用方法は
<?php if(is_mobile): ?>
モバイルのみ
<?php else : ?>
PCとipad等
<?php endif; ?>
って感じで分岐が可能です
また、ちょっと工夫すると
例えばsingleページに適応したい場合は
single.phpに
<?php
if (is_mobile()) {
/* モバイル時の投稿 */
include(TEMPLATEPATH . '/single_mobile.php');
}
else {
/* 他のカテゴリの投稿 */
include(TEMPLATEPATH . '/single_def.php');
}
?>
って書いてあげると「single_mobile.php」と「single_def.php」を判別してスイッチしてくれます。(テンプレートフォルダに「single_mobile.php」と「single_def.php」をアップする必要あり)
ご参考までに
入力に間違いがありました
<?php
if (is_mobile()) {
/* モバイル時の投稿 */
include(TEMPLATEPATH . '/single_mobile.php');
}
else {
/* スマホ以外のの投稿 */
include(TEMPLATEPATH . '/single_def.php');
}
?>
ですね。