はじめに
通知メッセージには、HTMLタグやショートコードを入力できません。
そこで、通知エリア用のウィジェットエリアを新しく作成し、「カスタムHTML」ウィジェットを利用して、自由にメッセージを表示できるようにします。
また、ウィジェットの設定を通じて、メッセージの内容や表示期間などを柔軟に変更できます。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下の手順で実装します。
- ラベルCocoon設定
表1に示す項目を設定します。
Cocoon設定 設定 大項目 項目 設定値 通知 通知表設定 通知エリアの表示 オン - ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
// ウィジェットエリアを追加 add_action('widgets_init', function () { register_sidebar([ 'name' => '通知エリア', 'id' => 'add-notice-contents', 'description' => '通知エリアに通知メッセージを表示するウィジェットです。', 'before_widget' => '', 'after_widget' => '', ]); }); // Cocoon設定(通知)の通知メッセージを変更 add_filter('get_notice_area_message', function ($msg) { global $_THEME_OPTIONS; // ウィジェットがない場合 if (is_admin() || !is_active_sidebar('add-notice-contents')) { return $msg; } // Cocoon設定の通知エリアURLを無効 $_THEME_OPTIONS['notice_area_url'] = ''; // ウィジェットを通知メッセージに設定 ob_start(); dynamic_sidebar('add-notice-contents'); return ob_get_clean(); }, 99); - ラベル「カスタムHTML」ウィジェット例
「カスタムHTML」ウィジェットには、次のように
campaignショートコードを入力できます。
指定した期間だけ通知メッセージを表示することも可能です。[campaign from="2024-12-24 08:00:00" to="2024-12-25 20:00:00"]<a href="URL">通知メッセージ</a>[/campaign]
さいごに
今回紹介した方法を使えば、「カスタムHTML」ウィジェットから通知エリアのメッセージを自由に設定できます。
ショートコードによる表示内容の変更や、表示期間の指定にも対応できるため、フックに直接コードを書いて条件分岐する方法よりも、柔軟に運用できます。

