根据用户角色显示不同的图像

时间:2016-10-31 作者:RodneyHawk

在我的评论中,我想显示不同的化身,这取决于该用户所扮演的角色,该角色给出了评论(而不是登录用户的角色)。

我试着在评论循环中这样做:

   <?php
   $commentator_id = get_comment(get_comment_ID())->user_id;
   $commentator_info = get_userdata($commentator_id);
   $capabilities = $user_info->wp_capabilities;
   if (array_key_exists(\'editor\', $capabilities)) {
      // echo markup here
   }
?>
但它不起作用。有人知道为什么吗?

1 个回复
SO网友:BlackOut

变量是什么$user_info 在你的代码里?也许你是说$commentator_info? 如果是,这肯定是错误的。您正在尝试提取wp_capabilities (?)来自未初始化的变量($user_info).

尝试以下操作:

    <?php
   $comment_id = get_comment_ID();
   $comment_data = get_comment($comment_id);
   $commentator_id = $comment_data->user_id;
   $commentator_info = get_userdata($commentator_id); // get_userdata, with the user ID specified, returns a WP_User object.

   if ( user_can($commentator_info, \'editor\') ) {  // user_can accept the user ID or the whole user object ($commentator_info).
      // echo markup here
   }
更改:已添加$comment_id$comment_data 变量(现在更具可读性),已删除$capabilities (不需要将功能存储在变量中,可以通过直接传递整个用户对象(或用户ID)和要验证的功能来检查它们user_can(). 已添加user_can() 并删除了阵列密钥检查。