如何解决Wordpress;如何从插件中删除操作以隐藏由另一个插件创建的 admin_notices
我是 WP hooks 的初学者,(动作和过滤器) 我能够创建一个插件,在 WP 仪表板中显示所有 4 个管理员通知
这里是插件一代码
/* Start admin notices on */
function display_admin_notice() {
?>
<div class ="notice notice-success is-dismissible"><p>Congratulatios! it seems you have a nice success notice</p></div>
<div class = "notice notice-error"><p>What a nice error message</p> </div>
<div class = "notice notice-warning"><p>WARNING!!! site about to blow up in pieces</p></div>
<div class = "notice notice-info is-dismissible"><p>INFO - you must renew license</p></div>
<?php
}
add_action( 'admin_notices','display_admin_notice' );
/* Stop admin notices on */
效果很好。
现在我有另一个隐藏所有通知的插件
/* Start Block ALL admin notices */
add_action('admin_enqueue_scripts','block_dismissable_admin_notices');
add_action('login_enqueue_scripts','block_dismissable_admin_notices');
function block_dismissable_admin_notices() {
echo '<style>.wp-core-ui .notice{ display: none !important; }</style>';
}
/* Stop Block ALL admin notices */
它也很好用
但我需要从第一个插件中删除操作,而不是隐藏所有通知,我的意思是,有没有办法获得
add_action( 'admin_notices','display_admin_notice'
从第一个插件和 remove_action 开始,所以插件只隐藏/阻止来自那个插件的 admin_notices 而不是所有 Wordpress 核心或其他插件?
提前致谢
解决方法
您可以添加一个 if 语句来有条件地检查是否需要操作挂钩,而不是加载代码然后卸载它(毫无意义)。
例如
$noticesOn = true; // Conditional setting could be here
if ( $noticesOn == true ) {
add_action('admin_enqueue_scripts','block_dismissable_admin_notices');
add_action('login_enqueue_scripts','block_dismissable_admin_notices');
}
,
好的,我终于明白了
这就是解决方案
add_action( 'init','remove_my_action' );
function remove_my_action()
{
global $wp_filter;
remove_action( 'admin_notices','display_admin_notice');
}
完美运行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。