我有一个小部件可以检索并显示WordPress网站的最新评论。它显示评论作者,Gravatar,评论和日期/时间。
显示评论的功能在一个类中。
我遇到的问题是每当我显示这个小部件时,它都会混乱或与我为WordPress主题返回的评论数量冲突。
实施例。在小部件中选择显示5条评论。在网站上的一个页面上,我有一条有8条评论的帖子。启用窗口小部件后,只会显示其中6条注释中的6条。
如果我禁用小部件,则会显示所有注释。
这是显示评论的功能
/**
* Retrieves the latest comments
*
* Shows a list of latest comments ordered by the date added
*
* @param int $limit - The number of posts to display
* @param int $chars - The number of characters to display for the post body
* @param int $size - Size of the comment Gravatar
* @param boolean $displayCommentsIcon - Whether to display the comment Gravatar
*
*/
public function aaw_get_latest_comments($display_comments_icon = true, $comments_icon_size = 50, $comments_amount = 5, $comments_chars = 35, $display_comments_date = true) {
global $comments;
$com_excerpt = '';
$aaw_comments = get_comments(array('number' => $comments_amount, 'status' => 'approve'));
if($aaw_comments){
foreach((array)$aaw_comments as $aaw_comment){
if($comments_chars > 0) {
$com_excerpt = self::aaw_snippet_text($aaw_comment->comment_content, $comments_chars);
}
echo '<li>';
if($display_comments_icon == 'true'){
echo '<a href="'.esc_url(get_comment_link($aaw_comment->comment_ID) ).'" title="'. __('Commented on: ', $this->hook). $aaw_comment->post_title.'">';
echo get_avatar($aaw_comment, $comments_icon_size);
echo '</a>';
}
echo '<div class="aaw_info">';
echo '<a href="'.esc_url(get_comment_link($aaw_comment->comment_ID) ).'" title="'. __('Commented on: ', $this->hook). $aaw_comment->post_title.'">';
echo '<i>'.strip_tags($aaw_comment->comment_author).'</i>: '.strip_tags($com_excerpt).'...';
echo '</a>';
if($display_comments_date == 'true'){
echo '<span class="aaw_meta">'.get_comment_date('j M Y',$aaw_comment->comment_ID).' '.__('at', $this->hook).' '.get_comment_date('g:i a',$aaw_comment->comment_ID).'</span>';
}
echo '</div>';
echo '</li>';
}
} else {
echo '<li>'.__('No comments available', $this->hook).'</li>'."\n";
}
}
这就是我调用函数的方式:
<?php $advanced_activity_widget->aaw_get_latest_comments($display_comments_icon == 'true' ? 'true' : 'false', $comments_icon_size, $comments_amount, $comments_chars, $display_comments_date == 'true' ? 'true' : 'false'); ?>
起初我以为是造成冲突的Gravatar,但我删除了它并且没有做出改变。
非常感谢任何帮助。 感谢
编辑:
它似乎是造成问题的get_comment_link()
。
如果我删除该函数的两个实例,则调用小部件并且注释显示正常。
我尝试过:wp_reset_postdata();
wp_reset_query();
rewind_posts();
一切都没有效果。
答案 0 :(得分:0)
尝试在wp_reset_query()
循环后添加对foreach
的调用。
http://codex.wordpress.org/Function_Reference/wp_reset_query