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

问题描述 投票:0回答:1

我最近更改了博客的主题,它显然没有显示所有评论类型,所以我留下了很多帖子,说他们有 X 条评论,但实际上没有一个显示在页面上。

这是显示我主题的 comments.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') : ?>

如果我将“评论”替换为“social-twitter”或“social-facebook”(目前不出现的两种类型的评论,它会起作用,它们看起来很好。但是,这使得所有其他评论类型都不会出现)所以解决方案看起来很简单,我只需要在那行代码中提及“comment”、“social-twitter”和“social-facebook”,这样所有当前存在的评论类型就会出现。我现在的问题是如何出现。我到底应该格式化列表吗?我刚刚尝试编写 'comment'、'social-facebook'、'social-twitter', 但这似乎不起作用。

php wordpress comments
1个回答
0
投票

正如您所提到的,您的 comments.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') : ?>

让我知道这是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.