我正在建立一个研究网站,我的参与者都将登录使用该网站。我想让这些参与者只能看到自己的评论,这样其他用户的评论就会被隐藏。
我正在使用注释。php文件,其中包括以下简单代码和用于格式化注释输出的回调:
<?php if ( have_comments() ) : ?>
<ol class="commentlist">
<?php wp_list_comments( \'type=comment&callback=custom_comentarios\' ); ?>
</ol>
<?php if ( ! comments_open() ) : ?>
<p class="no-comments">Comments are closed</p>
<?php endif; ?>
<?php endif; ?>
这是关于函数的简单代码。php格式化注释输出:
<?php
/* Custom callback function for displaying comments, see comments.php */
function custom_comentarios($comment, $args, $depth) {
$GLOBALS[\'comment\'] = $comment; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
<div id="comment-<?php comment_ID(); ?>">
<?php if ($comment->comment_approved == \'0\') : ?>
<em><?php _e(\'Your comment is awaiting moderation.\') ?></em>
<br />
<?php endif; ?>
<?php comment_text() ?>
</div>
<?php
}
?>
我需要在这段代码周围放置什么来过滤注释并仅向其所有者显示它们?我必须提到,我不是程序员,也不知道php语法:-/我知道它会是这样的:获取当前用户,检查当前用户在当前帖子上是否有评论,如果是,则显示评论。但是如何用php编写呢?
最合适的回答,由SO网友:Nicolai Grossherr 整理而成
要实现这一点,您需要做的是提供wp_list_comments()
, 那应该是$comments
描述如下:
(数组)(可选)数组由以下方式获得get_comments 查询
Default:默认返回get_comments.
这实际上明确了你需要做什么get_comments()
. 下面是如何实现这一目标的一般示例:
$user_id = get_current_user_id();
$user_specific_comments = get_comments(
array(
\'user_id\' => $user_id
)
);
wp_list_comments(
array(
\'per_page\' => 3
),
$user_specific_comments
);
原则现在已经很清楚了,所以这应该让你开始了。