php - 当页面由特定用户角色创建时如何隐藏页面上的 div
问题描述
我有 wordpress 婚礼网站,供应商列出他们的业务,用户可以直接联系他们,但有些列表是由管理员创建的(如以下链接)。如何根据用户角色隐藏元素(消息传递元素) - 我需要隐藏管理员创建的列表的联系人 div。我试图隐藏的元素的类是“new-listing-sidebar”。我看过很多关于尝试为用户隐藏元素的帖子,即如果用户角色是“编辑器”,则隐藏 div,但没有关于如何在由特定用户角色创建的页面上隐藏 div(或用户类别)通过他们的列表。
https://nearly-weds.co.uk/item/amazon-gift-list/
这甚至可能吗?谢谢。
解决方案
我要做的是将角色名称作为一个类包含在 body 标记中(可能需要稍微修改主题的 header.php 和 functions.php)。然后很容易使用 CSS 来控制谁看到了什么。
<body class="<? echo wp_get_current_user()->roles[0]; ?>">...
</body>
<body class="administrator">
如果您已登录,这将导致。否则roles
可能是空数组,因此请确保检查这种情况。
那么在CSS中应该很容易(例如)
.admin-only {
display: none;
}
body.administrator .admin-only {
display: block;
}
请注意,这只会在视觉上隐藏内容,而不是搜索引擎或“高级”用户。