我在wordpress中设置了comment()条件。这个条件在comments.php中设置,就像wordpress默认主题一样。
然后使用comment_template加载整个comments.php文件;现在,当我删除has_comments()条件时,一切正常并且所有注释都被加载,但是当我添加这个条件时,它返回false,好像没有注释一样。
这是我的整个comments.php文件:
<?php
/**
| This page deals with the comment-system and template in the Behdis Marketing Group Wordpress Theme.
**/
$commenter = wp_get_current_commenter();
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );
$fields = array(
'author' => "<div><input type='text' name='author' placeholder='Full Name' /></div>",
'email' => "<div><input type='text' name='email' placeholder='Email /></div>",
);
$comments_args = array(
'fields' => $fields,
'comment_field' => "<div class=\"comment-component\"><textarea name=\"comment\" id=\"comment\" ></textarea></div>",
'comment_notes_after' => '',
'title_reply' => 'Write your comment...',
'title_reply_to' => 'Reply',
'label_submit' => 'Comment!',
'comment_notes_before' => "<p class='simple-title'>" . 'Your email is kept secret forever' . ' '
);
comment_form($comments_args);
?>
<?php
if( have_comments() )
{
?>
<section class='post-comments'>
<?php
$comments = get_comments();
foreach($comments as $comm)
{
?>
<div class='post-each-comment'>
<p class="post-each-comment-meta">
<?php echo $comm->comment_author;?> در تاریخ <?php comment_time();?>
</p>
<?php echo $comm->comment_content; ?>
</div>
<?php
}
?>
</section>
<?php
}// end of have_comments()
else
{
?>
<div class='no-comment' >
No comments, be the first visitor to comment on this post!
</div>
<?php
}
?>
提前致谢
答案 0 :(得分:3)
在致电have_comments()
之前,请致电get_comments()
。
这可能只是你在这里遇到错误的处理流程的问题。 Wordpress使用全局静态,所以事物的顺序很重要(很容易错过):
<?php
$comments = get_comments();
if( have_comments() )
{
?>
<section class='post-comments'>
<?php
foreach($comments as $comm)
{
?>
<div class='post-each-comment'>
同样,codex说have_comments()
依赖于循环,因此$post
。可能即使我上面的示例代码建议也没有让它正确处理静态,所以你需要麻烦拍摄这个有点用来找出要使用的东西。
E.g。因为get_comments()
返回一个通常这样做的数组:
<?php
$comments = get_comments();
if( $comments )
{
?>
<section class='post-comments'>
<?php
foreach($comments as $comm)
{
?>
<div class='post-each-comment'>
正如您所见,无需拨打have_comments()
。
希望这会有所帮助并保持谨慎。
答案 1 :(得分:1)
在设置注释之前查询注释时会发生此问题。您可以使用comments_template(..)
加载包含have_comments()
的网页,以便正确设置评论。