在许多 WordPress 主题中,需要根据用户的登录状态或角色显示不同的内容。比如向登录用户显示个人中心链接,向未登录用户显示注册按钮,向管理员显示管理工具栏等。本文系统介绍主题中控制用户显示的各种方法。

检查用户登录状态

使用 is_user_logged_in 函数可以判断当前访问者是否已登录。这是控制内容显示最基础的条件判断。在模板中,你可以用这个函数控制是否显示登录或注册链接,或者控制是否显示仅限会员的内容区域。

检查用户权限

使用 current_user_can 函数可以检查当前用户是否有特定的权限。这个函数比检查角色更加精细,也更可靠。例如,current_user_can('edit_posts') 检查用户是否能编辑文章,current_user_can('manage_options') 检查用户是否有管理选项的权限。

在主题中,建议使用能力检查而不是角色检查。因为能力检查更加灵活,当自定义角色时也不会失效。

获取当前用户信息

使用 wp_get_current_user 函数可以获取当前用户的对象,包括用户 ID、用户名、显示名称、邮箱等。使用 get_userdata 可以根据用户 ID 获取用户信息。这些信息可以用于显示个性化的欢迎信息。

前端显示的控制方法

在前端模板中,可以使用条件标签结合以上函数来控制内容的显示。例如,在页眉中根据不同用户角色显示不同的导航菜单项。在文章列表中,只在登录用户可见的位置显示编辑链接。

对于需要更复杂权限控制的场景,可以结合用户元数据实现更精细的控制。