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

Ответы (2 шт):
в 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;
}
Для одиночных страниц/постов для вывода комментариев достаточно:
<?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 запросов)
