この記事は最後に更新してから1年以上経過しています。
説明
PC向けのサイトをスマートフォン対応する場合、WPtouchやktai styleに代表されるスマートフォン対応のテンプレート切り替えプラグインを使用するのが一般的。そういったプラグインはテンプレート切り替え以外の機能も備えており、そういった機能は必ずしも必要ではない。そんなわけで、ここでは超シンプルなスマートフォン向けのテンプレート切り替えを実現する方法を紹介する。template_includeフィルターを活用
テンプレートの振り分けを自身でコントロールする方法としては、template_includeフィルターを利用するのが手っ取り早い。具体的には、テーマ内のfunctions.phpにて、 add_filter関数を利用する。add_filter( 'template_include', 'mytheme_template_include' );
function mytheme_template_include( $template ) {
if ( is_smart_phone() ) {
$template_sp = str_replace( '.php', '-sp.php', $template );
if ( file_exists( $template_sp ) )
$template = $template_sp;
}
return $template;
}
スマートフォン判定
WordPressにはグローバル変数 $is_iphoneがあるが、Androidスマートフォンが対象にならないため、独自のスマートフォン判定を行うis_smart_phone関数を定義する。function is_smart_phone() {
return preg_match( '/android.+mobile/i', $_SERVER['HTTP_USER_AGENT'] ) ||
preg_match( '/iphone/i', $_SERVER['HTTP_USER_AGENT'] );
}
最終更新 : 2012年01月23日 19:54
関連
お勧め
the_archive_description(2018年5月27日 更新)
void the_archive_description( [ string $before = '' [ , string $after = '' ] ] )
アーカイブページの説明を表示する。
wp_localize_script(2018年5月27日 更新)
bool wp_localize_script( string $handle, string $object_name, array $l10n )
スクリプト向けの変数を追加する。
wp_is_site_protected_by_basic_auth(2021年2月5日 更新)
bool wp_is_site_protected_by_basic_auth( [ string $context = '' ] )
サイトがベーシック認証で保護されているか調べる。
get_post_time(2018年5月27日 更新)
mixed get_post_time( [ string $d = 'U' [ , bool $gmt = false [ , mixed $post = null [ , bool $translate = false ] ] ] ] )
パラメータ$dで指定されたフォーマットに従って投稿データの投稿時刻を取得する。
get_page_by_title(2018年5月31日 更新)
mixed get_page_by_title( string $page_title [ , string $output = OBJECT [ , string|array $post_type = 'page' ] ] )
指定されたタイトルの投稿情報を取得する。