プラグインなどを開発している人は、アクションフック admin_notices を使っていろいろ通知を表示していると思います。
しかしながら、admin_notices はアクションフックなだけなので、実際に表示する通知のHTMLは自前で書く事になり、手間だったり一貫性がなくなったりします。
そこで、WordPress 6.4 では wp_get_admin_notice() と wp_admin_notice() という2つの関数が追加されました。
wp_get_admin_notice()
- マークアップされた管理画面用の通知を返します。
- エスケープされた値が帰ってくるとは限らないので、出力の際は適切にエスケープする必要があります。
wp_admin_notice()
- マークアップされた管理画面用の通知を出力します。
- 中身は wp_get_admin_notice() で、出力前に wp_kses_post() でエスケープされます。
パラメーターはいろいろあるのですが、そちらは公式のドキュメントを見ていただくとしてとりあえず使ってみましょう。
通知の表示
とりあえず、表示する場所は従来通り admin_notices で良いので、アクションフック admin_notices の場所に wp_admin_notice() でアラートを表示します。公式ドキュメントに記載されていた内容を中に入れるとこんな感じ。
add_action( 'admin_notices', function(){
wp_admin_notice(
__( 'Plugin update failed.', 'my-text-domain' ),
array(
'type' => '',
'dismissible' => true,
'additional_classes' => array( 'inline', 'notice-alt' ),
'attributes' => array( 'data-slug' => 'plugin-slug' )
)
);
});
なるほど、よく見るアラートですね。
出力されているHTMLを見てみると、追加指定したクラス inline と notice-all が反映されており、属性 data-slug="plugin-slug"
も追加されています。
引数
あらためて引数を見てみると以下のような感じになります。
- $message – アラートメッセージ
- $args
- string $type – アラートタイプ。よくある success / info / warning / error が使える。
- bool $dismissible – 通知を消せるようにするかどうか
- array $additional_classes – 任意でクラス名を追加したい場合
- array $attributes – 任意で属性を追加したい場合
- bool $paragraph_wrap – 通知を
<p>
タグでラップするかどうか。デフォルトは true
フィルターフック
新しく追加された wp_get_admin_notice() 関数内部にはフィルターフックが用意されているので、改変も可能です。
wp_admin_notice_args フィルターでパラメーターを改変できるので、以下のように additional_classes に クラス名を追加したりする事ができます。
add_filter( 'wp_admin_notice_args', 'myprefix_add_class_to_warnings' );
function myprefix_add_class_to_warnings( $args ) {
if ( 'warning' === $args['type'] ) {
$args['additional_classes'][] = 'my-class';
}
return $args;
}
所感
なるほど、とりあえず毎回「通知のマークアップってどうやってたっけ?」と他のプラグインとか見直したりしていたので、統一にしやすいのは便利ですね。
注意事項
あくまで 6.4 からの新しい関数なので、6.3以前で使うと fatal error になってしまいます。
使う場合は WordPressのバージョンで条件分岐した上で使うか、function_exists() を忘れないようにしましょう。
現場からは以上です。
この記事を書いた人
-
名古屋のウェブ制作会社数社に10年程度務めた後、株式会社ベクトル設立。
企画・運営・コンサルティング〜WordPressを中心としたシステム開発まで幅広く携わる。
[ 著書 ]
・いちばんやさしいWordPressの教本(共著)
・現場でかならず使われているWordPressデザインのメソッド(共著)
[ 最近のWordPressコミュニティでの活動 ]
WordCamp Tokoy 2023 セッションスピーカー
WordCamp Asia 2023 セッションスピーカー(LT)
WordCamp Niigata 2019 セッションスピーカー
WordCamp Haneda 2019 セッションスピーカー
WordCamp Osaka 2018 セッションスピーカー
WordCamp Kyoto 2017 セッションスピーカー
他
最近の投稿
- WordPress2024年12月1日ベクトル製品リリースタイムラインから見る開発の裏話と進化の歴史
- WordPress2024年10月30日ブロックテーマで編集権限のユーザーでもメニューを編集できるようにする
- WordPress2024年4月9日WordPress 6.5 で導入された新しい翻訳システムへの対応方法
- WordPress2024年3月16日WordCamp Asia 2024 振り返り
フルサイト編集対応ブロックテーマ
WordPress テーマ X-T9 は、WordPress 5.9 から実装されたフルサイト編集機能に対応した「ブロックテーマ」と呼ばれる新しい形式のテーマです。
ヘッダーやフッターなど、今までのテーマではカスタマイズが難しかったエリアもノーコードで簡単・柔軟にカスタマイズする事ができます。
パターンを使って
よりクオリティの高いサイトに
パターンとは、WordPressのブロックを組み合わせて作ったデザインテンプレートのようなもの。プロのデザイナーが制作したパターンを300以上公開中!コピペしながら高品質なサイトを簡単に作れます。
ブロックエディターで
ABテストを
自由に作成できる VK AB Testing
VK AB Testing は、ABテストを実施するための WordPress 用プラグインです。ブロックエディターでテストパターンを自由に作成でき、ランダム表示とクリック計測が可能です。Webサイトや広告などの施策の改善にぜひご活用ください。