隐藏或禁用 wordpress 中特定角色的联系表 7

Hide or disable contact form 7 for specific role in wordpress

我在我的 wp 站点中创建了一个自定义用户角色 "faquser"。现在我只想为此角色隐藏联系表 7 菜单(或禁用)。我怎样才能做到这一点?我看到了这个:
http://contactform7.com/restricting-access-to-the-administration-panel/
但是如果我这样做,那么联系表只适用于管理员而不适用于任何其他人。我也试过这样做:

remove_menu_page('admin.php?page=wpcf7');

这也没有删除菜单项。

我找到了解决方案:

remove_menu_page('wpcf7');

为了正确执行此操作,您需要编写一个函数来确定您需要删除哪些角色的菜单项。

remove_menu_page('wpcf7'); // This is the snippet that will remove the contact form 7 menu specifically.

这是完成任务的函数示例。

function remove_menu_pages() {

    global $user_ID;

    if ( !current_user_can( 'publish_posts' ) ) {
       remove_menu_page('edit-comments.php'); // Comments
       remove_menu_page('edit.php?post_type=page'); // Pages
       remove_menu_page('wpcf7'); // Contact Form 7 Menu
    }
}
add_action( 'admin_init', 'remove_menu_pages' );

您可以在此处获取 WordPress 中不同角色的完整功能列表:https://wordpress.org/support/article/roles-and-capabilities/

我选择了 "publish_posts",这样作者以下的所有用户类型以及不具备 "publish_posts" 能力的用户将看不到联系表 7 菜单、评论或页面菜单项。

根据您赋予用户角色的能力 "faquser" 将确定您需要为哪些能力调用该函数。