具有自定义角色的用户无法阅读彼此的评论

时间:2013-10-14 作者:Chris Van Patten

我的网站有一个自定义角色(“教练”),具有自己的一组功能(通过map_meta_cap 以及一些内置角色)。每个用户都在网站上分配了一个他们“拥有”的页面,并且可以编辑(通过前端编辑器)。

每页都有评论(改名为“评论”)。

这个系统运行得很好,除了一件事:WordPress不会在该用户(具有“coach”角色)不“拥有”的页面上返回评论。

我收到评论get_comments(), 如果我注销、以管理员身份登录或以“coach”身份登录并查看coach的页面,它将返回我所期望的结果。以“coach”身份登录并查看其他页面时,get_comments() 返回空数组。

这似乎是一个角色/能力问题,但我很难确切地确定到底发生了什么。我曾尝试在教练的角色中添加各种能力,但运气不佳。

下面是我用来返回注释的代码:

$testimonials = get_comments( array(
    \'post_id\' => $coach_post_ID,
    \'status\'  => \'approve\',
) );
正在运行var_dump( $testimonials ); 返回一个空数组,除非我以“coach”、管理员身份登录或完全注销。

教练们让所有的公众read 已启用功能(readread_coach) 并且可以看到其他coach页面上的所有内容。

我很乐意提供您可能需要的任何信息来帮助诊断问题。提前感谢!

1 个回复
SO网友:cenk

我也有同样的问题,主要用户有contributor 登录时,角色和简单边栏注释边栏小部件不工作!奇怪的我通过一些sql解决了这个问题:

function getLatestComments ( $postid ) {
    global $wpdb;
    $sql = "SELECT * from $wpdb->comments WHERE
             comment_post_ID = $postid AND 
             comment_approved = 1 
             ORDER BY comment_ID DESC";
    return $wpdb->get_results($sql);
}
我用这个代替了get\\u注释。您可以根据需要修改sql并进行自定义。

结束