この記事は最後に更新してから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
関連
お勧め
has_category(2012年1月17日 更新)
bool has_category( [ mixed $category = '' [ , mixed $post = null ] ] )
投稿記事がカテゴリーに属しているか調べる。
comments_template(2018年5月27日 更新)
void comments_template( string $file = '/comments.php' , bool $separate_comments = false )
投稿ページ(post)または単一ページ(page)のコメント情報を取得し、コメント表示・投稿用のテンプレートファイルを読み込んで表示する。
is_taxonomy_hierarchical(2018年5月27日 更新)
bool is_taxonomy_hierarchical( string $taxonomy )
タクソノミーに階層(親子)関係があるか調べる。
send_confirmation_on_profile_email(2018年5月27日 更新)
void send_confirmation_on_profile_email()
メールアドレス変更を確認するメールを送信する。
get_the_modified_time(2023年9月20日 更新)
string | int | false get_the_modified_time( [ string $format = '' [ , int | WP_Post $post = null ] ] )
パラメータ$formatで指定したフォーマットで投稿の更新時刻を取得する。