こんにちは、T田です。
WordPressの管理画面をカスタマイズしているときに、ユーザに対して
- 処理結果を通知したい
- 注意喚起を表示したい
などと感じる場面はありませんか?
今回は、それをプラグインを使わずに実現する方法をお伝えします。
目次
1.はじめに
このホームページはWordPressで作成されているのですが、その管理画面をカスタマイズする機会がありました。
その際、サーバで処理した結果をユーザに通知したいと思い、プラグインを使わずに実現する方法を調べてみました。
ちなみに「通知」と言っているのは、以下のようなメッセージのことです。
2.admin_noticesアクションにフック
WordPressの管理画面にメッセージを通知しているのは、「admin_notices」というアクションです。
参照:WordPress Codex「admin_notices」
よって、通知を表示する関数を作成してこのアクションにフックすれば良さそうです。
functions.phpに以下のコードを追記します。
<?php
function showAdminNotices()
{
$html = '<div class="updated">';
$html .= ' <p>テストメッセージ</p>';
$html .= '</div>';
echo $html;
}
add_action( 'admin_notices', 'showAdminNotices' );
?>
これで、管理画面の全ページにメッセージが通知されるようになりました。
なお、<div class="updated">
を<div class="error">
にすればエラーメッセージ風に表示できます。
3.特定のページにだけ通知
先ほどのコードだと、管理画面の全ページにメッセージが通知されてしまいます。
それが目的であれば良いですが、特定のページにだけ通知したい場合もあると思います。
そんなときは、WordPressのグローバル変数$pagenow
が便利です。
参考:WordPress私的マニュアル「$pagenow」
固定ページや投稿ページの判定はis_page()
関数やis_single()
関数が用意されていますが、管理画面のどのページが判定する関数は見つけられませんでしたので、この$pagenow
変数を使用します。
例として、新規投稿画面に注意喚起を表示するコードに修正しました。
<?php
function showAdminNotices()
{
global $pagenow;
if ( $pagenow != 'post-new.php' ) {
return;
}
$html = '<div class="error">';
$html .= ' <p>「抜粋」は必ず入力してください!</p>';
$html .= '</div>';
echo $html;
}
add_action( 'admin_notices', 'showAdminNotices' );
?>
このように、新規投稿画面にのみ表示されるようになりました。
4.閉じるボタンを追加
WordPressが表示してくれる通知には、以下のように閉じるボタンがついています。
<?php
function showAdminNotices()
{
global $pagenow;
if ( $pagenow != 'post-new.php' ) {
return;
}
$html = '<div class="error notice is-dismissible">';
$html .= ' <p>「抜粋」は必ず入力してください!</p>';
$html .= ' <button type="button" class="notice-dismiss">';
$html .= ' <span class="screen-reader-text">この通知を非表示にする</span>';
$html .= ' </button>';
$html .= '</div>';
echo $html;
}
add_action( 'admin_notices', 'showAdminNotices' );
?>
まず、div
タグのclass
属性にnotice
とis-dismissible
を追加します。
次に、class
属性にnotice-dismiss
を持たせたbutton
タグを追加します。
これで、閉じるボタンが表示されるようになりました。
5.おわりに
今回は、WordPressの管理画面にプラグインを使わずにメッセージを通知する方法についてお伝えしました。
閉じるボタンの実装についてはあまり情報が無いので、参考にしていただければ幸いです。
ではまた次のブログでお会いしましょう!
<スポンサーリンク>
- 投稿タグ
- HTML
Pingback: 管理画面の特定のカスタム投稿の編集画面のみにメッセージを表示 | めもたんWordpress