プラグインの従来のadmin_notice
フックを介して管理者通知を追加しています:
function my_admin_notice() { ?>
<div class="notice notice-info is-dismissible">
<p><?php _e( 'some message', 'my-text-domain' ); ?></p>
</div>
<?php
}
if ( my_plugin_show_admin_notice() )
add_action( 'admin_notices', 'my_admin_notice' );
wordpressがJavascriptを使用せずに現在の画面のhtmlに管理者通知を配置する場所を制御するにはどうすればよいですか?
最近、偶然にすべての通知が_<h2>
_内のページの最初の_<div class="wrap">
_タグの後に移動されることがわかりました。これにより、いくつかのslightコントロールが提供されます。たとえば、プラグイン設定ページで、_<h2></h2>
_を使用しない場合は、最上部に空の_<h2>Plugin Title</h2>
_を配置できます。そこでディスプレイのフォーマットをめちゃくちゃにします。
コーデックスによると、admin_notice
は次のことを行います。
管理ページの上部近くに表示される通知。フック関数は、表示されるメッセージをエコーする必要があります。
つまり、フックを使用する場合、画面の下部または中央に配置することはできません。さらに、クラス通知を含むdivを管理ページの任意の場所に配置すると、WP admin JSスクリプトは、他のすべての通知と同じ場所にそれらを配置します;それらも通知のように動作します。
参考までに、これはフレッシュインストールで既にテスト済みです。 ;)
特定のページにadmin_notice
を表示する場合は、current_screen
アクション内にアクションを追加できます。
function my_admin_notice() { ?>
<div class="notice notice-info is-dismissible">
<p><?php _e( 'some message', 'my_textdomain' ); ?></p>
</div>
<?php
}
function my_current_screen_example( $current_screen ) {
// All your conditions go here, e.g. show notice @ post (not page) edit/new
if ( 'post' == $current_screen->post_type && 'post' == $current_screen->base ) {
add_action( 'admin_notices', 'my_admin_notice' );
}
}
add_action( 'current_screen', 'my_current_screen_example' );
アクションadmin_notices
が呼び出されるか、適用されます1回のみファイル、admin-header.php
、行番号238のwpbody-content
divの先頭にあり、ダッシュボードページの本文。したがって、JavaScriptを使用せずに管理者通知の位置を変更する方法はありません。ただし、必要な位置または場所に独自のnotice
divを確実に作成し、それらの可視性を操作することができます。
次のように通知のマークアップを作成します。
<div class="notice notice-info is-dismissible">
<p>This is a notice.</p>
</div>
PHPを使用して可視性を制御できるようになりました。ユーザーをこのページにリダイレクトするとき、またはこのページでフォームを送信するときの意味は、divにメッセージを設定し、それ以外の場合はシンプルを使用して、divをエコーします。