如何彻底移除WordPress仪表盘管理栏的评论下拉菜单?现有代码无法清除该图标
解决WordPress管理栏评论下拉菜单无法移除的问题
嘿,我之前也碰到过一模一样的情况!你写的代码里remove_menu('comments')没生效,多半是钩子优先级的问题——有些主题或者插件会在你的代码执行之后,又把评论菜单重新加回来了。
试试下面这几个方法,按顺序来:
方法1:提高钩子优先级(首选)
把你的函数绑定到wp_before_admin_bar_render时,把优先级设得高一些(比如999),确保你的代码最后执行,覆盖其他添加菜单的操作:
// Remove Admin bar links with higher priority function remove_admin_bar_links() { global $wp_admin_bar; $wp_admin_bar->remove_menu('wp-logo'); // Remove the Wordpress logo $wp_admin_bar->remove_menu('about'); // Remove the about Wordpress link $wp_admin_bar->remove_menu('wporg'); // Remove the Wordpress.org link $wp_admin_bar->remove_menu('documentation'); // Remove the Wordpress documentation link $wp_admin_bar->remove_menu('support-forums'); // Remove the support forums link $wp_admin_bar->remove_menu('feedback'); // Remove the feedback link $wp_admin_bar->remove_menu('comments'); // 重点移除评论菜单 $wp_admin_bar->remove_menu('new-content'); // Remove the content link } // 把优先级设为999,确保在其他动作之后执行 add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links', 999 );
方法2:直接移除所有评论相关节点
如果方法1还是不行,可能是评论菜单的子节点或者别名在搞鬼,试试直接移除主菜单和可能存在的子菜单:
function remove_all_admin_bar_comments() { global $wp_admin_bar; // 移除主评论菜单 $wp_admin_bar->remove_menu('comments'); // 移除待审核评论的子菜单(如果有的话) $wp_admin_bar->remove_menu('pending-comments'); } // 用admin_bar_menu钩子,同样设高优先级 add_action( 'admin_bar_menu', 'remove_all_admin_bar_comments', 999 );
方法3:CSS强制隐藏(备选)
如果上面的PHP方法都不管用,那可以用CSS直接把它藏起来——虽然不是彻底从后台移除,但视觉上完全看不到:
function hide_admin_bar_comments() { if ( is_admin_bar_showing() ) { echo '<style type="text/css">#wpadminbar #wp-admin-bar-comments { display: none !important; }</style>'; } } // 同时在前台和后台加载这个CSS add_action( 'wp_head', 'hide_admin_bar_comments' ); add_action( 'admin_head', 'hide_admin_bar_comments' );
一般来说方法1就能解决问题,因为大部分情况都是优先级不够导致的。如果还是不行,检查一下有没有插件(比如评论管理类插件)在强制添加这个菜单,可以暂时禁用插件排查一下。
内容的提问来源于stack exchange,提问作者J82
相关产品推荐
相关产品推荐

