获取当前用户在页面模板中的评论

时间:2013-11-28 作者:agis

我想在自定义帖子类型中添加一个页面模板,并在该页面中检索当前用户发布的评论。

我有以下获取当前用户的代码:

<!-- GET CURRENT USER -->

<?php

global $current_user;
get_currentuserinfo();

echo \'Username: \' . $current_user->user_login . \'<br />\';
echo \'User email: \' . $current_user->user_email . \'<br />\';
echo \'User first name: \' . $current_user->user_firstname . \'<br />\';
echo \'User last name: \' . $current_user->user_lastname . \'<br />\';
echo \'User display name: \' . $current_user->display_name . \'<br />\';
echo \'User ID: \' . $current_user->ID;
?>
获取当前用户评论的代码:

<!-- GET COMMENTS OF USER -->
<?php 
$args = array(
\'user_id\' => 1, // use user_id
    \'post_type\' => \'my-CPT\',
 );
$comments = get_comments($args);
foreach($comments as $comment) :
    echo($comment->comment_author . \'<br />\' . $comment->comment_content);
endforeach;

?>
以及列出注释的代码:

<ol class="commentlist">
            <?php
                wp_list_comments( array( \'callback\' => \'outbox_comment\' ) );
            ?>
</ol><!-- .commentlist -->
这就是我page-commentsbyuser.php 正在查看:

<?php

/**
 * The template for displaying a list of comment from the current user
 *
 */

get_header();

    ?>
<div id="primary" class="row">

    <div id="content" class="span9" role="main">

<!-- GET CURRENT USER -->   
<?php
global $current_user;
get_currentuserinfo();
echo \'Username: \' . $current_user->user_login . \'<br />\';
echo \'User email: \' . $current_user->user_email . \'<br />\';
echo \'User first name: \' . $current_user->user_firstname . \'<br />\';
echo \'User last name: \' . $current_user->user_lastname . \'<br />\';
echo \'User display name: \' . $current_user->display_name . \'<br />\';
echo \'User ID: \' . $current_user->ID;
?>
    <!-- GET COMMENTS OF USER -->

<?php 
$args = array(
\'user_id\' => 1, // use user_id
    \'post_type\' => \'my-CPT\',
 );
$comments = get_comments($args);
foreach($comments as $comment) :
    echo($comment->comment_author . \'<br />\' . $comment->comment_content);
endforeach;

?>
    <ol class="commentlist">
            <?php
                wp_list_comments( array( \'callback\' => \'outbox_comment\' ) );
            ?>
        </ol><!-- .commentlist -->
    </div><!-- #content .site-content -->

</div><!-- #primary .content-area -->
这不起作用,我也不知道如何才能得到当前用户的评论。

关于如何在此页面模板中从当前用户的CPT中检索注释,有什么建议吗?

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

这不起作用,我也不知道如何才能得到当前用户的评论。

您已经在代码中使用了当前用户的ID。。。

echo \'User ID: \' . $current_user->ID;
。。。但是你在get_comments 参数数组。不要那样做。使用当前用户ID。

$args = array(
    \'user_id\' => $current_user->ID, // use user_id
    \'post_type\' => \'my-CPT\',
);
我不确定您的用户评论与wp_list_comments. 你已经输出了用户评论,所以我不知道你为什么要运行wp_list_comments 除非您试图输出一组不同的注释,或者您试图再次输出相同的注释(这很奇怪)。不管怎样,你都需要通过wp_list_comments 一组注释,如中所示this example from the Codex (重新格式化以减少混淆):

//Gather comments for a specific page/post 
$comments = get_comments(
  array(
    \'post_id\' => XXX,
    \'status\' => \'approve\' //Change this to the type of comments to be displayed
  )
);

//Display the list of comments
wp_list_comments(
  array(
    \'per_page\' => 10, //Allow comment pagination
    \'reverse_top_level\' => false //Show the latest comments at the top of the list
  ), 
  $comments
);
注意第二个参数$comments, 这是调用的输出get_comments. 你似乎在使用这个的背景下,我认为这是必须的。

结束

相关推荐

如何从循环外部的wp_list_Comments中获取特定数据?

我需要一些帮助,对wordpress很陌生。我只需要评论标题和评论日期wp_list_comments 函数,在将$postid声明为全局变量后从外部循环调用。现在,我正在获取有关评论的所有信息,如作者、日期、标题、评论等。那么,我如何才能获得上述特定细节?