对于我的WP主题,我正在为每个博客帖子显示评论。除了我的else
语句之外,一切正常,我认为这是因为每个$post
计算页面上的所有$comments
,而不仅仅是它自己的。{/ p>
所以这是我的php:
<?php
$args = array(
'post_id' => $post->ID,
'status' => 'approve'
);
$comments = get_comments($args); ?>
if (get_comments_number($comments)==0) {
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);
} else {
echo "<i>No Comments</i>";
} ?>
我尝试了两个不同的foreach语句,首先是$ comments:
<?php
foreach($comments as $comment) :
if (get_comments_number($comments)==0) {
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);
} else {
echo "<i>Inga kommentarer än</i>";
} ?>
} endforeach; ?>
使用$ posts:
<?php
foreach($posts as $post) :
if (get_comments_number($comments)==0) {
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);
} else {
echo "<i>Inga kommentarer än</i>";
} ?>
} endforeach; ?>
刚刚渲染的第二个&#34;这篇文章受密码保护。输入密码以查看评论。&#34;而不是include('intranet-comments.php');
(在评论后调用)。
答案 0 :(得分:1)
您应该将postID作为参数传递给get_comments_number
而不是注释数组。检查wp codex。
为什么在评论数为0时尝试显示评论?
应该看起来像这样:未经测试。通过智能手机回答
<?php
$args = array(
'post_id' => $post->ID,
'status' => 'approve'
);
if (get_comments_number($post->ID)!=0) {
$comments = get_comments($args);
// and do something with commenzs
} else {
echo "<i>No Comments</i>";
} ?>