web-dev-qa-db-fra.com

afficher les commentaires non approuvés au début de wordpress

J'ai presque fini de coder une fonction qui permet aux contributeurs quand ils sont l'auteur du post de gérer les commentaires laissés sur leur propre post (portfolio) plugin pour le faire donc dû me salir.

Cela fonctionnera comme ceci:

1) L'utilisateur laisse un commentaire sur le portfolio de post_authors.

2) Post_author est notifié par email qu'il a un commentaire à modérer (ce bit est géré par un plugin "notify-on-comments").

3) Post_author se connecte et accède à la page de son portefeuille. Dans les commentaires, il y a deux liens, un pour "supprimer" et un pour "approuver".

Maintenant, je peux obtenir la suppression pour travailler sur les commentaires déjà publiés , mon problème est que je veux montrer le commentaire non publié avec les commentaires publiés (ne voulez pas que les gens aient accès au tableau de bord wp-admin pour modérer les commentaires, je veux que tout se fasse au début),

Est-ce que quelqu'un sait comment je peux faire cette partie de montrer le commentaire non approuvé dès le début aux contributeurs?

Une fois terminé, je serai ravi de partager le code et les crédits si quelqu'un d'autre en avait besoin.

Cordialement et merci d'avance

2
MartinJJ

Facile:

function show_portfolio_comments( $post_ID ) 
{
    // NOT approved
    $comments_unapproved = get_comments( array( 'status' => 'hold', 'post_id' => $post_ID ) );
    foreach ( $comments_unapproved as $comments) 
    {
      if ( current_user_can( 'edit_published_posts' ) // maybe you'll have to switch to some other cap 
      {
      ?>
      <div class="comment">
         <h4>Unapproved Comments on your portfolio</h4>
         <div class="comment-author"><?php echo $comment->comment_author; ?></div>
         <div class="comment-content"><?php echo $comment->comment_content; ?></div>
      </div>
      <?php
      } // endif; - current_user_can( 'edit_published_posts' )
    }

    // ALREADY approved
    $comments_approved = get_comments( array( 'status' => 'approve', 'post_id' => $post_ID ) );
    foreach ( $comments_approved as $comments) 
    {
      ?>
      <div class="comment">
      <?php if ( current_user_can( 'edit_published_post' ) { ?>
         <h4>Approved Comments on your portfolio</h4>
      <?php }  // endif; - current_user_can( 'edit_published_posts' ) ?>
         <div class="comment-author"><?php echo $comment->comment_author; ?></div>
         <div class="comment-content"><?php echo $comment->comment_content; ?></div>
      </div>
      <?php
    }
}

Tag modèle:

// Use it in your template like this & don't forget to Push the post ID into it:
$post_ID = $GLOBALS['post']->ID;
// or:
global $post;
$post_ID = $post->ID;
// or:
$post_ID = get_the_ID();
// or:
$post_ID = get_queried_object_id();

show_portfolio_comments( $post_ID );
5
kaiser