テストプラグインを有効にすると、管理パネルに通知を表示しようとしています。 どのように表示できますか?誰かがその方法を知っていますか?WordPress:管理者パネルの通知をプラグインの有効化に表示するにはどうすればいいですか?
答えて
、「admin_notices」フックを直接使用することはできません、リダイレクトがあるためです。この問題を回避するには、オプションテーブルに通知を保存し、次回に確認してください。また、プラグインのアップグレードとアクティベーションをカバーする場合は、 'admin_init'(WP 3.1以降、http://make.wordpress.org/core/2010/10/27/plugin-activation-hooks/を参照)などの別のフックを使用する必要があります。
ここに、アクティベーションとアップグレードの両方を処理する完全なサンプルプラグインがあります。私は延期通知を配列にして、それらを積み重ねることができます。
<?php
/*
Plugin Name: My Plugin
*/
register_activation_hook(__FILE__, 'my_plugin_activation');
function my_plugin_activation() {
$notices= get_option('my_plugin_deferred_admin_notices', array());
$notices[]= "My Plugin: Custom Activation Message";
update_option('my_plugin_deferred_admin_notices', $notices);
}
add_action('admin_init', 'my_plugin_admin_init');
function my_plugin_admin_init() {
$current_version = 1;
$version= get_option('my_plugin_version');
if ($version != $current_version) {
// Do whatever upgrades needed here.
update_option('my_plugin_version', $current_version);
$notices= get_option('my_plugin_deferred_admin_notices', array());
$notices[]= "My Plugin: Upgraded version $version to $current_version.";
update_option('my_plugin_deferred_admin_notices', $notices);
}
}
add_action('admin_notices', 'my_plugin_admin_notices');
function my_plugin_admin_notices() {
if ($notices= get_option('my_plugin_deferred_admin_notices')) {
foreach ($notices as $notice) {
echo "<div class='updated'><p>$notice</p></div>";
}
delete_option('my_plugin_deferred_admin_notices');
}
}
register_deactivation_hook(__FILE__, 'my_plugin_deactivation');
function my_plugin_deactivation() {
delete_option('my_plugin_version');
delete_option('my_plugin_deferred_admin_notices');
}
UPDATE:代わりにupdate_option()
のset_transient()
を使用するには、正しい管理者ユーザーにメッセージを指示する一般的な方法もあります。この投稿への懸念のmetaboxesは、アクティベーションプラグインではないが、技術は、私が知る限り、ちょうど約どこでもダッシュボードで同じ仕事:https://wordpress.stackexchange.com/questions/15354/passing-error-warning-messages-from-a-meta-box-to-admin-notices
あなたはshow_wp_pointer_admin_bar
を使用して管理ポインタと呼ばれるものを作成するために、新しい管理者通知を使用することができます。あなたの通知を追加するhttp://wpengineer.com/2272/how-to-add-and-deactivate-the-new-feature-pointer-in-wordpress-3-3/
適切な方法は、admin_notices
アクションのあなたのフックでそれをエコーすることです:
Linkyは、プラグインのアクティベーションのために
function wpse8170_admin_notice(){
echo '<div class="updated"><p>This is my notice.</p></div>';
}
add_action('admin_notices', 'wpse8170_admin_notice');
しかし、それは質問としてのプラグインの有効化には表示されません。 – Progrock
これは予告に
function your_admin_notice(){
echo '<div class="updated">
<p>I am a little yellow notice.</p>
</div>';
}
add_action('admin_notices', 'your_admin_notice');
しかし、あなた場合を示すために、とても簡単です
add_action('admin_notices', 'example_admin_notice');
function example_admin_notice() {
global $current_user ;
$user_id = $current_user->ID;
/* Check that the user hasn't already clicked to ignore the message */
if (! get_user_meta($user_id, 'example_ignore_notice')) {
echo '<div class="updated"><p>';
printf(__('This is an annoying nag message. Why do people make these? | <a href="%1$s">Hide Notice</a>'), '?example_nag_ignore=0');
echo "</p></div>";
}
}
add_action('admin_init', 'example_nag_ignore');
function example_nag_ignore() {
global $current_user;
$user_id = $current_user->ID;
/* If user clicks to ignore the notice, add that to their user meta */
if (isset($_GET['example_nag_ignore']) && '0' == $_GET['example_nag_ignore']) {
add_user_meta($user_id, 'example_ignore_notice', 'true', true);
}
}
の下に試してみて、あなたが条件以下の特定のページの試行でその通知を表示したい場合は、その後Dismissibleお知らせを表示したいです。
function my_admin_notice(){
global $pagenow;
if ($pagenow == 'plugins.php') {
echo '<div class="updated">
<p>This notice only appears on the plugins page.</p>
</div>';
}
}
add_action('admin_notices', 'my_admin_notice');
これを正しく見て、表示したいすべてのメッセージに対してコールバック関数を作成する必要がありますか?エラーメッセージの内容を指定するパラメータをとる関数を作成するにはどうすればよいですか? – majikman
エラーメッセージを表示したい場合は、実際には別の方法があります。 admin_noticeをパラメータで表示するには、ここで一番上の答えを試すことができます。また、以下のリンクから方法を見つけることができます http://stackoverflow.com/questions/1242328/wordpress-displaying-an-error-message-hook-admin-notices-fails-on-wp-insert-p –
amarkal-admin-notificationをIを開発しました - あなたは、静的/ dismissible管理者通知を追加することができますし、あなたのために解雇を処理するスクリプトを。このスクリプトは、Amarkal WordPressフレームワーク内のモジュールです。例えば
:
amarkal_admin_notification('my-error-notice', __('Oh snap! This is an <strong>error</strong> message.','slug'), 'error');
- 1. 管理パネルに表示されるwordpressプラグイン
- 2. Django管理者にマルチワードアプリ名を正しく表示するにはどうすればいいですか?
- 3. 管理パネルでカスタムRSSフィードを表示するにはどうすればよいですか?
- 4. 私のDjango管理サイトでインラインManyToManyFieldsを有効にするにはどうすればいいですか?
- 5. Wordpressのプラグイン - Wordpressのホームページのプラグインはどうすればいいですか
- 6. チェックボックスの有効化でPayPalボタンを無効/有効にするにはどうすればよいですか?
- 7. WordPressのコメントを効果的にホームページに表示するにはどうすればいいですか?
- 8. 既存のiOSプロジェクトでソース管理を有効にするにはどうすればよいですか?
- 9. 通知を管理してアプリケーションのMainActivityをキャンセルするにはどうすればよいですか?
- 10. Webデータ管理者で検証を無効にするにはどうすればよいですか?
- 11. AIRアプリケーションでプッシュ通知を有効にするにはどうすればよいですか?
- 12. C2DMプッシュ通知をWi-Fiで有効にするにはどうすればよいですか?
- 13. WordPress RSSを表示するにはどうすればいいですか?
- 14. Enterprise Distributionの証明書の有効期限を管理するにはどうすればよいですか?
- 15. Wordpressの管理者が0の投稿を表示する
- 16. 管理者アカウントでJoomla管理パネルにアクセスできない
- 17. prestashop管理パネルで新しいページを作成するにはどうすればいいですか?
- 18. Android:デバイス管理を有効にするにはどうすればよいですか?
- 19. 予定のローカル通知を表示するにはどうすればいいですか
- 20. PAR :: Packer:アンパック通知をユーザーに表示するにはどうすればいいですか?
- 21. WordPressにPHPの通知が表示されないようにするにはどうすればよいですか?
- 22. WordPressでカテゴリを非表示または無効にするにはどうすればよいですか?
- 23. Wordpress、Buddypress、テーマ、プラグインをアップデートするにはどうすればいいですか?
- 24. WordPressプラグイン管理者ajaxがもう動作しない
- 25. 管理者を非表示にする
- 26. ユーザーを管理者と出席者に分割するにはどうすればよいですか?
- 27. Django管理者のモデルフィールドにカスタムフォームフィールドを使用するにはどうすればいいですか?
- 28. アプリが既に開いていて、通知が来たときにダイアログでプッシュ通知を表示するにはどうすればいいですか?
- 29. Wordpressの画像エディタのエラーが管理パネルに表示される
- 30. バックグラウンドサービスからの通知を表示するにはどうすればよいですか?
これはいいようです、私の唯一のコメントは、あなたが新しい通知を追加する部分を乾かすことです。 – pguardiario
うん、3行 '$ notices = get_option(...); $ notices [] = ...; update_option(...、$ notices) 'を汎用目的の' my_plugin_add_notice() '関数に抽象化することができます。これは、 'note'と 'error'のパラメータでよく見られます。それから、そのレンダリング関数は、青色または赤色のバナーとしてWPファッションで、cssクラスの 'update'または 'error'を使用して正しく表示します。 – kitchin