STORK19ではver2.9.3〜サイドバーをフィルターフックを使って呼び出す方式に変更しました。
これによってサイドバーの表示設定を細かくカスタマイズすることができるようになりました。
スマホ表示の固定ページでサイドバーを非表示にする
例えば、パソコン表示でサイドバーのないテンプレートを利用していたとしても、スマホ表示の際にはコンテンツの下にサイドバーが表示される仕様になっています。(サイドバーウィジェットが設定されている場合は)
これは、スマホ表示の際はサイドバーという概念がなく、スマホでの記事下のコンテンツを統一するためにこの仕様となっています。
ですが、人によってはスマホでもサイドバーの内容を表示させたくないという場合もあるかと思います。
そんな場合は、以下のコードを子テーマのfunctions.phpに記載してみましょう。
スマホ表示でサイドバーなしの固定ページテンプレートを使っている場合に、非表示になります。
モバイル表示で固定ページ(サイドバーなし)のときにサイドバーウィジェットを表示しないコード
// モバイル表示で固定ページ(サイドバーなし)のときにサイドバーウィジェットを表示しない
function remove_stk_mobile_sidebar() {
if(
(
is_page_template('single-viral.php') || is_page_template('single-full.php') || is_page_template('page-full.php')
)
&& is_mobile()
) {
remove_action( 'stk_hook_sidebar', 'stk_sidebar' );
}
}
add_action( 'stk_hook_sidebar', 'remove_stk_mobile_sidebar', 5 );
上記コードは、STORK19のver2.9.3〜でないと機能しないコードであることに注意してください
ちなみに、すべての固定ページ(かつスマホ表示)の場合にサイドバーを非表示にするには以下のコードでOKです。だいぶシンプルになります。
// モバイル表示で固定ページのときにサイドバーウィジェットを表示しない
function remove_stk_mobile_sidebar() {
if( is_page() && is_mobile() ) {
remove_action( 'stk_hook_sidebar', 'stk_sidebar' );
}
}
add_action( 'stk_hook_sidebar', 'remove_stk_mobile_sidebar', 5 );
まとめ
サイドバーウィジェットは、ひとことで表示非表示といっても様々な条件が重なるため、設計がとてもむずかしいです。
スマートフォン、PC、ウィジェットの設定有無、サイドバーなしテンプレート…
これらの様々な要因を考慮する必要があるのでver2.9.3より制御可能な仕様に変更しました。