Я недавно изменил тему своего блога, и он, очевидно, не отображает все типы комментариев, поэтому у меня осталось много постов, в которых говорится, что у них есть 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( ' at ', 'flexblog' );
comment_time( get_option('time_format') );
?>
</a>
<?php
echo edit_comment_link( esc_html__(' [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( ' at ', 'flexblog' );
comment_time( get_option('time_format') );
?>
</a>
<?php
echo edit_comment_link( esc_html__(' [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 и заменить «comment» на «all» в этой строке в functions.php:
<?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', , но, похоже, это не сработало.