在WordPress前端显示未经批准的评论

时间:2011-03-21 作者:MartinJJ

我几乎完成了一个函数的编码,该函数允许contributers 当他们是帖子的作者来管理自己帖子(公文包)上留下的评论时,找不到插件来做这件事,所以不得不把自己弄脏。

其基本工作原理如下:

1) 用户在post\\u作者公文包上留下评论。

2) Post\\u作者通过电子邮件通知他们有一条评论供审核(此位由插件“通知评论”处理)。

3) Post\\u作者登录并转到他/她的公文包页面,评论中有两个链接,一个用于“删除”,另一个用于“批准”评论。

现在我可以开始删除了already published comments, 我的问题是我想show the unpublished comment along with the published comments (不希望访问wp admin dashboard的人发表温和的评论,我希望所有的评论都在前端完成),

有人知道我如何在前端向投稿者展示联合国批准的评论吗?

一旦完成,我将非常乐意分享代码和学分,如果其他人需要它。

提前致以问候和感谢

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

简单:

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
    }
}
模板标记:

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

结束

相关推荐

更改Get_Comments_link()和Get_Comments_Pagenum_link()函数生成的注释链接

当前我的主题需要get_comments_link() 创建标准定位的步骤#comments 链接到帖子下方的评论,以及get_comments_pagenum_link() 对分页注释执行函数。我想更换#comments 使用任何其他字符串锚定这些函数,当然不会更改WP的核心php文件。一个简单的add_filter 完全替换核心函数(pluggable.php中的除外)似乎是不可能的。有没有其他方法可以实现对使用PHP(而不是Java)的核心函数的输出的这一微小更改?这里有没有办法使用add_filt