2016-05-24 8 views
1

In einer neuen WordPress Vorlage möchte ich single.php anpassen, um die Liste der Kommentare nur dem Postautor anzuzeigen.Zeige WordPress Kommentare nur dem Beitragsautor

Andere Benutzer (Gäste und andere Postautoren) sollten keine Kommentare oder Leerzeichen sehen.

Zusammenfassend kann der Postautor (wenn protokolliert) die Liste der Kommentare am Ende seiner Beiträge sehen, aber nichts am Ende der Beiträge von anderen Autoren geschrieben.

Welchen bedingten Code sollte ich auf den folgenden Code anwenden?

<?php 
global $wpdb,$current_user; 
$limit = 10; //this is limit per day per user 
$comment_count = $wpdb->get_var($wpdb->prepare(" 
SELECT count(*) 
FROM cxp_comments 
WHERE comment_author = '%s' 
AND comment_date >= DATE_SUB(NOW(),INTERVAL 1 DAY);" 
,$current_user->user_login)); 

if($comment_count < $limit): ?> 

<h2 class="comments-title"> Want to get and review this product?</h2> 
<form action="http://localhost/reviews/wp-comments-post.php" method="post"  id="commentform" class="comment-form" novalidate=""> 
<p class="comment-amaz" style="display:none;"><input id="user-rank"  name="user-rank" aria-required="false" class="" type="text" value="<?php echo  do_shortcode('[mycred_my_ranking]'); ?>"></p> 
<p class="comment-amazi" style="display:none;"><input id="user-points"  name="user-points" aria-required="false" class="" type="text" value="<?php echo  do_shortcode('[mycred_my_balance wrapper="0" title_el="" balance_el=""]'); ?>"> </p> 
<p class="comment-form-comment"> 
<textarea id="comment" name="comment" placeholder="Insert your Amazon Public  Profile Link" aria-required="true"></textarea></p> 
<p class="form-submit"><input name="submit" id="submit" class="submit"  value="Review this product!" type="submit"> <input name="comment_post_ID" value=" <?php global $post; 
echo $post->ID; ?>" id="comment_post_ID" type="hidden"> 
<input name="comment_parent" id="comment_parent" value="0" type="hidden"> 
</p> </form> 
<?php endif; ?> 


<?php if($comment_count > $limit): ?> 
<p>Exceeded comments limit for today. Please, come back tomorrow!</p> 

<?php endif; ?> 

Dies ist nur für das Frontend gemacht. Mir ist das Admin-Panel egal.

Antwort

1

Überprüfen Sie, ob der Benutzer angemeldet ist mit is_user_logged_in():

if(is_user_logged_in()) 

Sie dann die Benutzeranmeldung erhalten mit wp_get_current_user():

$curUser = wp_get_current_user(); 
$curLogin = $curUser->user_login; 

erhalten dann den Autor Login mit get_the_author_meta():

$autLogin = get_the_author_meta('user_login'); 

Zum Vergleich:

if($autLogin == $curLogin) wp_list_comments(); 

Voll Code:

if(is_user_logged_in()){ 
    $curUser = wp_get_current_user(); 
    if(get_the_author_meta('user_login') == $curUser->user_login) wp_list_comments(); 
} 
Verwandte Themen