WP Rocket 顶部导航移除“文档”和“支持”选项完整过程

VFX大学 wordpress开发 WP Rocket 顶部导航移除“文档”和“支持”选项完整过程

  • 该话题为空。
正在查看 0 条回复
  • 作者
    帖子
    • #777

      追光
      管理员

      以下是完整的记录WP Rocket 顶部导航移除“文档”和“支持”选项完整过程,在此分享给各位开发者,包含问题分析、排查过程、最终解决方案以及可复用的代码示例。

      背景

      WP Rocket 是一个强大的缓存插件,但在后台管理页面的**顶部工具栏(Admin Bar)**中,会默认添加以下两个外链选项:

      • 文档(Docs)

      • 支持(Support)

      这些链接跳转到 WP Rocket 官网或文档站点。如果你希望完全移除它们,或者定制菜单,只保留核心操作,可以参考以下完整解决方案。


      问题表现

      在 WordPress 后台顶部栏中,WP Rocket 插件添加了以下菜单结构:

      <li role="group" id="wp-admin-bar-wp-rocket" class="menupop">
        <a class="ab-item" href="...">Cached</a>
        <div class="ab-sub-wrapper">
          <ul id="wp-admin-bar-wp-rocket-default">
            <li id="wp-admin-bar-rocket-settings"><a href="...">设置</a></li>
            <li id="wp-admin-bar-purge-all"><a href="...">清除缓存</a></li>
            <li id="wp-admin-bar-preload-cache"><a href="...">预加载缓存</a></li>
            <li id="wp-admin-bar-docs"><a href="http://docs.wp-rocket.me/">文档</a></li>
            <li id="wp-admin-bar-support"><a href="http://wp-rocket.me/support/">支持</a></li>
          </ul>
        </div>
      </li>

      目标:移除 docs 和 support,仅保留清理缓存和预加载操作。


      第一步:排查菜单来源

      functions.php 中添加调试代码,输出后台菜单结构:

      // 输出后台左侧菜单
      add_action('admin_menu', function() {
          global $submenu;
          error_log(print_r($submenu, true)); // 打印左侧菜单
      });
      
      // 输出顶部菜单节点
      add_action('admin_bar_menu', function($wp_admin_bar) {
          error_log(print_r($wp_admin_bar->get_nodes(), true)); // 打印所有 admin bar 节点
      }, 999);

      通过日志发现,文档支持 的节点 ID 分别是:

      • wp-admin-bar-docs

      • wp-admin-bar-support

      它们归属于主节点 wp-admin-bar-wp-rocket


      第二步:移除目标节点

      使用 wp_before_admin_bar_render 钩子删除菜单节点:

      add_action('wp_before_admin_bar_render', function() {
          global $wp_admin_bar;
      
          // 移除“文档”和“支持”
          $wp_admin_bar->remove_node('docs');
          $wp_admin_bar->remove_node('support');
      }, 999);

      刷新后台后,顶部“文档”和“支持”消失 ✅。


      第三步:增强版方案(自动适配未来版本)

      为了避免 WP Rocket 升级后 ID 改动导致失效,可以使用模糊匹配自动删除相关节点:

      add_action('wp_before_admin_bar_render', function() {
          global $wp_admin_bar;
          
          // 遍历所有节点
          foreach ($wp_admin_bar->get_nodes() as $node_id => $node) {
              if (strpos($node_id, 'docs') !== false || strpos($node_id, 'support') !== false) {
                  $wp_admin_bar->remove_node($node_id);
              }
          }
      }, 999);

      ✔ 自动检测并删除包含 docssupport 的节点

      ✔ WP Rocket 升级后仍然有效

      ✔ 可扩展逻辑,移除其他不需要的菜单


      最终效果

      • 顶部工具栏:只保留核心功能(清除缓存、清除 URL、预加载缓存)

      • “文档”和“支持”完全移除


      完整代码总结

      /**
       * 移除 WP Rocket 顶部导航中的“文档”和“支持”
       */
      add_action('wp_before_admin_bar_render', function() {
          global $wp_admin_bar;
          
          foreach ($wp_admin_bar->get_nodes() as $node_id => $node) {
              if (strpos($node_id, 'docs') !== false || strpos($node_id, 'support') !== false) {
                  $wp_admin_bar->remove_node($node_id);
              }
          }
      }, 999);

正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。