首页 >后端开发 >php教程 >如何完全禁用 WordPress 管理员通知

如何完全禁用 WordPress 管理员通知

Patricia Arquette
Patricia Arquette原创
2025-01-07 18:13:40600浏览

您是否厌倦了看到无休无止的通知充斥着您的 WordPress 仪表板?来自插件和主题的那些烦人的管理通知可能会分散注意力,有时甚至令人不知所措。今天,我将向您展示一个实用的解决方案,在遵循最佳实践的同时永久删除所有 WordPress 管理员通知。

WordPress 管理员通知的问题

WordPress 管理员通知有一个重要目的 - 它们让我们了解更新、警告和重要消息。但是,当您管理多个网站或使用多个插件时,这些通知可能很快就会失控。他们可以:

  • 分散您对重要任务的注意力

  • 让你更难专注于重要的仪表板元素

  • 创建一个杂乱无章的管理界面

  • 显着减慢您的工作流程

最糟糕的部分?一些插件绕过了 WordPress 的标准通知系统,使得有效管理它们变得具有挑战性。

解决方案:禁用 WordPress 管理员通知

我开发了一个简单但功能强大的代码片段,可以完全删除 WordPress 仪表板中的所有管理通知。该解决方案与其他解决方案不同,因为它:

  • 删除所有类型的管理通知

  • 防止插件绕过删除

  • 使用多种方法确保彻底清除

  • 遵循 WordPress 编码标准

  • 适用于最新的 WordPress 版本

最终代码

<?php
/**
 * Disable Admin Notices WordPress
 * Description: Completely removes all admin notices from the WordPress dashboard,
 * including core WordPress notices and those added by plugins and themes.
 * @author Faisal Ahammad <me@faisalahammad.com>
 */

/**
 * Remove all notice actions
 */
function disable_all_admin_notices() {
    remove_all_actions('admin_notices');
    remove_all_actions('all_admin_notices');
    remove_all_actions('user_admin_notices');
    remove_all_actions('network_admin_notices');
}
add_action('admin_init', 'disable_all_admin_notices', 1);

/**
 * Add CSS to hide notice elements
 */
function hide_admin_notices_css() {
    ?>
    <style>
        .notice, 
        .notice-error, 
        .notice-warning, 
        .notice-success, 
        .notice-info, 
        .updated, 
        .error, 
        .update-nag {
            display: none !important;
        }
    </style>
    <?php
}
add_action('admin_head', 'hide_admin_notices_css', 1);

/**
 * Disable notice output
 */
function return_false() {
    return false;
}
add_action('admin_notices', 'return_false', 1);
add_action('all_admin_notices', 'return_false', 1);
add_action('user_admin_notices', 'return_false', 1);
add_action('network_admin_notices', 'return_false', 1);

/**
 * Remove update nags
 */
function remove_core_update_notices() {
    remove_action('admin_notices', 'update_nag', 3);
    remove_action('admin_notices', 'maintenance_nag', 10);
}
add_action('admin_init', 'remove_core_update_notices', 1);

代码解释

让我们分解一下我们解决方案的关键组件:

1.通知动作删除

function disable_all_admin_notices() {
    remove_all_actions('admin_notices');
    remove_all_actions('all_admin_notices');
    remove_all_actions('user_admin_notices');
    remove_all_actions('network_admin_notices');
}

此功能会删除与管理通知相关的所有操作挂钩,从而防止它们首先显示。

2.基于CSS的通知隐藏

该代码段包含 CSS 规则,用于隐藏任何可能漏掉的通知:

function hide_admin_notices_css() {
    ?>
    <style>
        .notice, 
        .notice-error, 
        .notice-warning, 
        .notice-success, 
        .notice-info, 
        .updated, 
        .error, 
        .update-nag {
            display: none !important;
        }
    </style>
    <?php
}

3.更新Nag去除

function remove_core_update_notices() {
    remove_action('admin_notices', 'update_nag', 3);
    remove_action('admin_notices', 'maintenance_nag', 10);
}

这专门针对并删除 WordPress 核心更新通知。

如何实施解决方案

您有多种选择来实现此代码:

方法一:使用代码片段插件(推荐)

  1. 安装并激活代码片段插件

  2. 导航至片段 → 添加新内容

  3. 复制完整代码

  4. 启用“仅在管理区域运行

  5. 保存并激活

Code Snippets

方法2:通过functions.php

您可以将此代码添加到主题的functions.php 文件中,但请记住,如果您更改主题,它将停止工作。

性能影响

好消息是,该解决方案对您网站性能的影响很小。它仅在管理区域中运行,并使用有效的挂钩和方法来删除通知。 CSS 规则也是轻量级的,仅在仪表板中加载。

常见问题解答

这也会删除重要的安全通知吗?

是的,这将删除所有通知,包括安全通知。如果您需要保留安全通知,则需要修改代码以排除特定通知类型。

删除所有管理员通知是否安全?

虽然通常是安全的,但您应该确保有其他方法来及时了解 WordPress 网站上的重要更改和更新。

这会影响我网站的前端吗?

不,此代码仅影响管理仪表板。您网站的前端保持完全不变。

结论

此解决方案通过删除所有管理员通知,提供了一种干净、有效的方式来整理您的 WordPress 仪表板。虽然随时了解网站状态很重要,但拥有一个干净、无干扰的管理界面可以显着提高您的工作流程效率。

如果您实施此解决方案,请记住通过其他方式定期检查您网站的更新和维护需求,因为您将不再收到标准的 WordPress 通知。

之前在我的博客上发布的帖子:如何完全禁用 WordPress 管理员通知

以上是如何完全禁用 WordPress 管理员通知的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn