PC用のサイドバーがスマホでそのまま表示されると、長すぎたり、場合によってはPCとスマホで違うメニュー表示にしたかったりする事がある。そこでPCとスマホで違うサイドバーを表示させてみたのだ。
とりあえず、前回ウィジェットエリアの追加の記事で作った3つ目のウィジェットエリアをスマホのサイドバーとして表示してみる事にした。
テンプレートファイルの
<?php get_sidebar(); ?>
の部分を以下に書き換えて出来てしまった。
<?php if ( wp_is_mobile() ) : ?> <?php dynamic_sidebar( 'mobile-widget-area' ); ?> <?php else: ?> <?php get_sidebar(); ?> <?php endif; ?>
とりあえず、表示できてしまったので、僕はこのままにしてあるけれど、どうもサイドバーの表示をテンプレートファイルに書き込む場合は、dynamic_sidebar()よりget_sidebar()を使った方がいいらしい。
上の例で、もともとPC用のサイドバーに前回記事の1つ目のサイドバーを使っていたとすると、sidebar.phpのdynamic_sidebar( ‘side-widget-area’ )の部分をdynamic_sidebar( ‘mobile-widget-area’ )に書き換えたsidebar-mobile.phpなんていうスマホ用のサイドバーテンプレートファイルを用意して、以下のように記述した方が正解ってことなんでしょうね・・・。
<?php if ( wp_is_mobile() ) : ?> <?php get_sidebar("mobile"); ?> <?php else: ?> <?php get_sidebar(); ?> <?php endif; ?>