如何在管理面板中显示插件激活通知?

2024-04-19

当我激活测试插件时,我试图在管理面板中显示通知。
我怎样才能显示它?那个方法是什么?


对于插件激活,不能直接使用“admin_notices”挂钩,因为存在重定向。解决方法是将您的通知存储在选项表中,并在下次检查。另外,如果您还想涵盖插件升级和激活,则需要使用另一个挂钩,例如“admin_init”(自 WP 3.1 起,请参阅http://make.wordpress.org/core/2010/10/27/plugin-activation-hooks/ 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'); 
}

更新:还有一种常见的使用方法set_transient()代替update_option(),并将消息定向到正确的管理员用户。这篇文章涉及元框,而不是插件激活,但据我所知,这些技术在仪表板中的任何地方都是相同的:https://wordpress.stackexchange.com/questions/15354/passing-error-warning-messages-from-a-meta-box-to-admin-notices https://wordpress.stackexchange.com/questions/15354/passing-error-warning-messages-from-a-meta-box-to-admin-notices

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在管理面板中显示插件激活通知? 的相关文章

随机推荐