首页 > 解决方案 > 当页面由特定用户角色创建时如何隐藏页面上的 div

问题描述

我有 wordpress 婚礼网站,供应商列出他们的业务,用户可以直接联系他们,但有些列表是由管理员创建的(如以下链接)。如何根据用户角色隐藏元素(消息传递元素) - 我需要隐藏管理员创建的列表的联系人 div。我试图隐藏的元素的类是“new-listing-sidebar”。我看过很多关于尝试为用户隐藏元素的帖子,即如果用户角色是“编辑器”,则隐藏 div,但没有关于如何在由特定用户角色创建的页面上隐藏 div(或用户类别)通过他们的列表。

https://nearly-weds.co.uk/item/amazon-gift-list/

这甚至可能吗?谢谢。

标签: phphtmlcsswordpress

解决方案


我要做的是将角色名称作为一个类包含在 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;
}

请注意,这只会在视觉上隐藏内容,而不是搜索引擎或“高级”用户。


推荐阅读