Как вывести комментарии в ленте постов по каждым постом?

нужно создать на сайте страницу микроблога и вывести под постами комментарии в ленте постов ,как тут https://p2demo.wordpress.com/ тоесть в ленте постов пост как под ним сделать возможеость оставить кометарий прямо в ленте не переходя на страницу поста как в вконтате введите сюда описание изображения


Ответы (2 шт):

Автор решения: Valerii Vasiliev

в header.php

добавить код инициализации

<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?34"></script>

<script type="text/javascript">
VK.init({apiId: API_ID, onlyWidgets: true});
</script>

в functions.php добавить

add_filter('the_content', 'add_vk_widget', 10, 2);

function add_vk_widget($content) {
    
    $post_id = get_the_ID();
    
    $content .= '<div id="vk_comments_'.$post_id.'"></div>';
    
    $content .= '<script type="text/javascript">';
    
    $content .= 'VK.Widgets.Comments("vk_comments", {limit: 20, width: "496", attach: "*"}, page_id : "'.$post_id.'");';
    
    $content .= '</script>';
    
    return $content;
}
→ Ссылка
Автор решения: Kjuri

Для одиночных страниц/постов для вывода комментариев достаточно:

<?php comments_template(); ?>

Вордпресс сам все выведет и даже стилизовано будет стандартно. По поводу функции можно почитать здесь.

!НО вот для вашего случая(много постов), этого недостаточно из-за проверок в шаблоне и функции вывода комментариев.

Шаблон: wp-content\themes\twentytwenty\template-parts\content.php

if ( ( is_single() || is_page() ) && ( comments_open() || get_comments_number() ) && ! post_password_required() ) 

Функция: wp-includes\comment-template.php

if ( ! ( is_single() || is_page() || $withcomments ) || empty( $post ) )

Поэтому, топорное решение(возможно все же для этих целей есть плагины, или более разумные решения) - исключить страницу блога из запретов.

Для функции: скопировать функцию, добавить в function.php, переименовать, добавить разрешение ( is_home() )

if ( ! ( is_single() || is_page()|| is_home() || $withcomments ) || empty( $post ) )

Для шаблона:

<?php
    if ( ( is_single() || is_page() || is_home() ) && ( comments_open() || get_comments_number() ) && ! post_password_required() ) {
        ?>

        <div class="comments-wrapper section-inner">

            <?php comments_template_new(); ?>

        </div><!-- .comments-wrapper -->

        <?php
    }
?>

Результат: Скрин результата

Важно: Проверялось на основе стандартной темы twentytwenty

Важно!: Существенно увеличивается количество запросов к базе данных(даже для 3х комментариев + 10 запросов)

→ Ссылка