筛选管理员评论列表以仅显示当前用户的评论?


10

在“评论”页面(/wp-admin/edit-comments.php)中,每个登录的用户都可以看到所有站点评论。
评论页面


我希望用户只能看到他/她自己的评论以及留在他/她帖子中的评论。

我该如何过滤?

Answers:


9

这3个都可以帮助您:

//Before getting the comments, on the WP_Comment_Query object for each comment
add_action('pre_get_comments', 'wpse56652_filt_comm');

//Applied on the comments SQL Query, you can modify the 'Where' part of the query
add_filter('comments_clauses', 'wpse56652_filt_comm');

//After the comments are fetched, you can modify the comments array
add_filter('the_comments', 'wpse56652_filt_comm');

function wpse56652_filt_comm($param) {
    //access the current user
    global $current_user;
    get_currentuserinfo();

    //current users id = $current_user->ID;

    //Current users posts, check get_posts params to change as per your need
    $user_posts = get_posts(array('author' => $current_user->ID, 'posts_per_page' => -1));

    echo '<pre>';
    print_r($param);
    echo '</pre>';

    return $param;
}

另外,您可以global $pagenow用来确保代码仅在此页面上运行。

对不起,我今天有点不适,所以不能写下一个例子!;)

编辑:

/**
 * Show only the Comments MADE BY the current logged user
 * and the Comments MADE TO his/hers posts.
 * Runs only for the Author role.
 */

add_filter('the_comments', 'wpse56652_filter_comments');

function wpse56652_filter_comments($comments){
    global $pagenow;
    global $user_ID;
    get_currentuserinfo();
    if($pagenow == 'edit-comments.php' && current_user_can('author')){
        foreach($comments as $i => $comment){
            $the_post = get_post($comment->comment_post_ID);
            if($comment->user_id != $user_ID  && $the_post->post_author != $user_ID)
                unset($comments[$i]);
        }
    }
    return $comments;
}

感谢您的回答-就在几个小时前,我在您的博客中找到了解决此类问题的文章!我什至找不到用于评论的参数,但我不知道如何设置当前登录的用户ID。如果我只想显示他的评论,我可以使用他的ID,但我也想显示他的帖子的评论。怎么做?
moonvader 2012年

别客气!现在检查答案,我已经更新了。
Rutwick Gangurde 2012年

现在它在wp-admin / edit-comments.php页面中显示所有评论参数-但我仍然可以看到所有评论(
moonvader 2012年

那是因为您必须过滤评论!我把那个print_r用于测试的目的!
Rutwick Gangurde 2012年

必须在wpse56652_filt_comm函数内部进行此过滤?您能给我一个例子,如何只显示id = 4的用户的评论吗?
moonvader 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.