如何将所有评论类型显示在WordPress中?

时间:2018-11-10 09:25:17

标签: wordpress comments

我最近更改了博客的主题,并且显然没有显示所有评论类型,因此我留下了很多帖子,它们都带有X条评论,但实际上它们都没有显示在页面上。

这是用于显示主题主题的comment.php文件中的注释的代码:

<?php wp_list_comments('callback=infinity_comments'); ?>

据我了解,我必须以某种方式包括以下内容:

( array( 'type' => 'all' ) )

问题是我真的不知道该怎么做。我不是开发人员,所以我的知识非常有限。

我们将不胜感激。

谢谢!

=====更新=====

@zipkundan似乎可行,但是好像注释没有任何CSS规则,而且它们都被弄乱了,所以现在就可以了。 (图片:https://i.imgur.com/u2ibqUA.png

这是“ infinity_comments”功能:

if ( ! function_exists( 'infinity_comments' ) ) {

function infinity_comments ( $comment, $args, $depth ) {
$_GLOBAL['comment'] = $comment;

if(get_comment_type() == 'pingback' || get_comment_type() == 'trackback' ) : ?>

<li class="pingback" id="comment-<?php comment_ID(); ?>">
    <article <?php comment_class('entry-comments'); ?> >
        <div class="comment-content">
            <h3 class="comment-author">
                <?php esc_html_e( 'Pingback:', 'flexblog' ); ?>
            </h3>   
            <span class="comment-date" >
            <a href=" <?php echo esc_url( get_comment_link() ); ?> " class="comment-date" >
                <?php
                comment_date( get_option('date_format') );
                esc_html_e( '&nbsp;at&nbsp;', 'flexblog' );
                comment_time( get_option('time_format') );
                ?>
            </a>
            <?php
                echo edit_comment_link( esc_html__('&nbsp;[Edit]', 'flexblog' ) );
            ?>
            </span>
            <div class="clear"></div>
            <div class="comment-text">          
            <?php comment_author_link(); ?>
            </div>
        </div>
    </article>
</li>

<?php elseif (get_comment_type() == 'comment') : ?>

    <li id="comment-<?php comment_ID(); ?>">

        <article <?php comment_class('entry-comments'); ?> >                    
            <figure class="comment-avatar">
                <?php 
                    $avatar_size = 60;
                    if( $comment->comment_parent != 0 ) {
                        $avatar_size = 55;
                    }
                    echo get_avatar( $comment, $avatar_size );
                ?>
            </figure>
            <div class="comment-content">
            <h3 class="comment-author">
                <?php comment_author_link(); ?>
            </h3>
            <span class="comment-date" >
            <a href=" <?php echo esc_url( get_comment_link() ); ?> ">
                <?php
                comment_date( get_option('date_format') );
                esc_html_e( '&nbsp;at&nbsp;', 'flexblog' );
                comment_time( get_option('time_format') );
                ?>
            </a>
            <?php
                echo edit_comment_link( esc_html__('&nbsp;[Edit]', 'flexblog' ) );
            ?>
            </span>
            <div class="clear"></div>
            <div class="comment-text">
            <?php if($comment->comment_approved == '0') : ?>
            <p class="awaiting-moderation"><?php esc_html_e('Your comment is awaiting moderation.', 'flexblog'); ?></p>
            <?php endif; ?>
            <?php comment_text(); ?>
            </div>
            </div>
            <span class="reply">
                <?php comment_reply_link(array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth']) ) ); ?>
            </span> 
        </article>                          
<?php endif;
}
}

我尝试在comments.php中使用您的代码,并在functions.php的这一行中将“ comment”替换为“ all”:

    <?php elseif (get_comment_type() == 'comment') : ?>

但没有任何变化。显示注释,但它们未遵循任何CSS规则。

有什么办法解决吗?

谢谢!

=====更新2 =====

在我上面提到的functions.php代码中,是这样的:

<?php elseif (get_comment_type() == 'comment') : ?>

如果我将“ comment”替换为“ social-twitter”或“ social-facebook”(目前未出现的两种类型的评论都可以,它们看起来很好。但是,这会使所有其他评论成为现实类型不出现。因此解决方案看起来非常简单,我只需要在该行代码中提及“ comment”,“ social-twitter”和“ social-facebook”,以便出现所有当前存在的注释类型。我应该如何精确格式化列表?我只是尝试编写'comment','social-facebook','social-twitter',但这似乎不起作用。

1 个答案:

答案 0 :(得分:0)

如前所述,您的comment.php文件中有以下一行。

<?php wp_list_comments('callback=infinity_comments'); ?>

将其更新/更改为以下内容。

<?php
     $arg = array(
         'callback'=>'infinity_comments',
         'type'=>'all'
     );
     wp_list_comments(); 
?>

如果这不能解决您的问题,则问题出在新主题的自定义函数“ infinity_comments”之内。在其中找到新主题中的功能,然后发布该功能的代码进行检查。

希望这会有所帮助。

在有问题的“更新2”之后更新。

在这种情况下,您可以尝试如下更新elseif。

<?php elseif (get_comment_type() == 'comment' || get_comment_type() == 'social-twitter' || get_comment_type() == 'social-facebook') : ?>

让我知道这是否可行。