Yönetici Yorumları Listesini Yalnızca Geçerli Kullanıcının Yorumlarını Gösterecek Şekilde Filtreleme?


10

Yorumlar sayfasında ( /wp-admin/edit-comments.php), giriş yapan her kullanıcı tüm site yorumlarını görebilir.
yorum sayfası


Kullanıcıların yalnızca kendi yorumlarını ve gönderilerine bırakılan yorumları görmelerini istiyorum.

Bunu nasıl filtreleyebilirim?

Yanıtlar:


9

Bu 3 durumdan herhangi biri size yardımcı olacaktır:

//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;
}

Ayrıca global $pagenow, kodun yalnızca bu sayfada çalıştığından emin olmak için kullanabilirsiniz .

Üzgünüm bugün biraz rahatsızım, bu yüzden bir örnek yazamadım! ;)

Düzenle:

/**
 * 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;
}

Cevabınız için teşekkür ederim - sadece birkaç saat önce blogunuzdaki gönderiler için bu sorunu çözmek için makale buldum! Ben bile yorumlar için params bulmak ama ho mevcut giriş yapmış kullanıcı kimliği ayarlamak için bilmiyorum. sadece yorumlarını göstermek istiyorsam kimliğini kullanabilirim ama aynı zamanda yazılarına yorum göstermek istiyorum. Nasıl yapılabilir?
moonvader

Rica ederim! Cevabı şimdi kontrol et, güncelledim.
Rutwick Gangurde

şimdi wp-admin / edit-comments.php sayfasındaki tüm yorum parametrelerini gösteriyor - ama yine de tüm yorumları görebiliyorum (
moonvader

Çünkü yorumları filtrelemek zorundasınız! Bu print_r'i test uğruna koydum!
Rutwick Gangurde

Bu filtreleme wpse56652_filt_comm işlevi içinde yapılmalıdır? bana sadece id = 4 olan kullanıcının yorumlarını nasıl göstereceğine dair bir örnek gösterebilir misiniz?
moonvader
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.