
アーカイブページなどにもサイドバーを表示させたいっすけど、機能として備わってないっす。



Snow Monkeyには備わっていないけど、紹介するコードで簡単に実装できるぞ!
今回のカスタマイズは『Snow Monkey』には機能としては、用意されていないためPHPで制御させる形になります。
ウィジェットの追加はWordPressの基本操作になりますので、本記事では説明を省かせてもらいます。


サイドバー表示のカスタマイズコード
本カスタマイズを利用する前に、ウィジェットのご用意をお願いいたします。ウィジェットのご用意がない場合、画面上で実装確認ができません。
下記コードを『My Snow Monkey』のmy-snow-monkey.php
に追記をしてください。小テーマの作成済みの場合は、小テーマのfunction.php
に追記とお使いの環境に合わせてご利用ください。
// Snow Monkeyのデフォルトのサイドバー出力処理を無効化する(優先度20のアクションを解除)
remove_action( 'snow_monkey_sidebar', 'snow_monkey_sidebar_add_sidebar_widget_area', 20 );
// カスタムのサイドバー出力関数を定義
function my_snow_monkey_sidebar_add_sidebar_widget_area() {
// WooCommerceページかどうかを判定(WooCommerceが有効な場合)
if ( function_exists( 'is_woocommerce' ) && is_woocommerce() ) {
// WooCommerce専用のサイドバーウィジェットエリアを表示(存在する場合)
snow_monkey_the_woocommerce_sidebar_widget_area();
} else {
// 通常のサイドバーウィジェットエリアを表示
snow_monkey_the_sidebar_widget_area();
// 追尾(スティッキー)サイドバーウィジェットエリアも表示
snow_monkey_the_sidebar_sticky_widget_area();
}
}
// 上記のカスタム関数を、Snow Monkeyの'snow_monkey_sidebar'アクションに登録(優先度20)
add_action( 'snow_monkey_sidebar', 'my_snow_monkey_sidebar_add_sidebar_widget_area', 20 );
snow_monkey_the_sidebar_widget_area()
:通常のサイドバーのウィジェットを表示するSnow Monkeyの関数です。
snow_monkey_the_sidebar_sticky_widget_area()
:追尾型(スクロールしても残る)サイドバーを表示します。
is_woocommerce()
:WooCommerceプラグインが有効な場合にしか存在しない関数なので、安全のため function_exists()
を併用しています。
優先度20はデフォルトの処理と同じ優先度なので、順序を揃えるために明示しています。
※テーマのアップデートで動かなくなることがあるので、定期的に表示を確認してください。
サイドバーを条件付けして表示させたい場合
条件付きでサイドバーや追尾サイドバーの表示を制御したい場合は、WordPressの条件分岐タグ(例:is_single()
、is_page()
、is_front_page()
など)を使って、ページの種類や投稿タイプに応じて表示内容を切り替えます。これにより、たとえば「ブログ記事では追尾サイドバーを表示」「固定ページでは通常サイドバーだけ」といった柔軟なカスタマイズが可能になります。
よく使う条件分岐タグの例
条件 | タグ | 説明 |
---|---|---|
投稿ページ | is_single() | 通常のブログ記事ページ |
固定ページ | is_page() | 「お問い合わせ」などの静的ページ |
トップページ | is_front_page() | サイトのトップページ |
アーカイブページ | is_archive() | カテゴリー・日付別など |
投稿タイプ指定 | get_post_type() === '○' | カスタム投稿タイプに対応 |
上記タグを組み込んだサンプルが下記コードになります。
if ( is_single() && get_post_type() === 'post' ) { ... }
これを先ほどまでのコードと組み合わせると、
// Snow Monkeyのデフォルトのサイドバー出力を無効にする
remove_action( 'snow_monkey_sidebar', 'snow_monkey_sidebar_add_sidebar_widget_area', 20 );
// カスタムのサイドバー出力処理を追加
function my_snow_monkey_sidebar_add_sidebar_widget_area() {
// 投稿ページ(postタイプ)の場合
if ( is_single() && get_post_type() === 'post' ) {
// 通常サイドバーを表示
snow_monkey_the_sidebar_widget_area();
// 追尾サイドバーも表示
snow_monkey_the_sidebar_sticky_widget_area();
} else {
// それ以外のページでは通常サイドバーのみ表示
snow_monkey_the_sidebar_widget_area();
}
}
// カスタムサイドバー表示処理をフックに登録(優先度20で)
add_action( 'snow_monkey_sidebar', 'my_snow_monkey_sidebar_add_sidebar_widget_area', 20 );
- 投稿ページ(
post
):通常サイドバー+追尾サイドバーを表示 - 固定ページやカスタム投稿タイプなどそれ以外:通常サイドバーのみ表示
- WooCommerceなど特別な処理が不要な場合にシンプルな構成
まとめ:サイドバーウィジェットエリアと追尾サイドバーウィジェットエリアを全ページに表示するカスタマイズ方法
Snow Monkeyで全ページに共通のサイドバーと追尾サイドバーを表示するには、テーマがもともと用意しているサイドバー表示の処理を無効にし、自分で表示内容をカスタマイズする必要があります。その際、WooCommerceページなど特別なページへの対応も考慮すると柔軟な実装ができます。処理の追加はテーマのフック(アクション)を使って行い、サイドバーの構成を明確に制御するのがポイントです。
- サイドバーのウィジェットエリアが「外観 > ウィジェット」で表示されているか確認しましょう。
- WooCommerce専用の関数は、使えない場合もあるので事前にチェックすると安心です。
- テーマのアップデートで動かなくなることがあるので、定期的に表示を確認しましょう。
コメント(承認制)