관리자 의견 목록을 필터링하여 현재 사용자의 의견 만 표시 하시겠습니까?


10

댓글 페이지 ( /wp-admin/edit-comments.php)에서 로그인 한 모든 사용자가 모든 사이트 댓글을 볼 수 있습니다.
댓글 페이지


사용자가 자신의 의견과 자신의 게시물에 남겨진 의견 만 보길 원합니다.

이것을 어떻게 필터링 할 수 있습니까?

답변:


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 2016 년

천만에요! 지금 답변을 확인하고 업데이트했습니다.
Rutwick Gangurde

이제 그것은 wp-admin / edit-comments.php 페이지에 모든 주석 매개 변수를 표시하지만 여전히 모든 주석을 볼 수 있습니다 (
moonvader

댓글을 필터링해야하기 때문입니다! 테스트를 위해 print_r을 넣었습니다!
Rutwick Gangurde

이 필터링은 wpse56652_filt_comm 함수 내에서 이루어져야합니까? id = 4 인 사용자의 의견 만 표시하는 방법에 대한 예를 보여 주실 수 있습니까?
moonvader 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.