Задать вопрос
@apptimeru

Ajax Загрузка комментариев WP?

Добрый вечер господа. Хочу подгружать блок с комментированием на Wordpress при прокрутке страницы до конца , столкнулся с проблемой, не могу найти в сети решение. Проблема в следующем, при подгрузке функции WP comments_template() через Ajax, функция не работает потому что не получается глобальные переменные такие как $post. Сама функция comments_template не принимает подобных параметров, так как обычно используется в цикле, и получает нужные данные из глобальных переменных.

Как решить подобную проблему? есть возможность использовать эту функцию, или необходимо все сделать вручную? передать ID поста, вытащить по нему все комменты и саму форму комментирования.

Зарание вам благодарен за помощь)
  • Вопрос задан
  • 1725 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
YarchicK
@YarchicK
Front-end developer
function comm(){	 
	$p_id = ( $_POST['spd'] );	
	$args = array(
		'posts_per_page' => -1,
		'p' => $p_id
	);
	$yy_query = new WP_Query($args);	
	while ( $yy_query->have_posts() ) {
		$yy_query->the_post();
global $withcomments;
		$withcomments = true;
		 comments_template();		
	}	
 wp_die();
}
add_action('wp_ajax_mycomm', 'comm');
add_action('wp_ajax_nopriv_mycomm', 'comm');

---
$('.seecomments').click(function(){	
 	$.ajax({ 		
 		url: ajaxurl, 
 		type: 'POST',		
 		beforeSend: (function(){				
					$('.comment_template').html('Загрузка..');
			}),
 		data: ({
 			action: 'mycomm',	
 			spd: send_post_id 			
 		}),
 		success: function(data){ 		 
 			$('.comment_template').html(data);
 		}
 	})
 });

---
В single.php
//code...
<div class="seecomments">показать комменты</div>
<script>
	var send_post_id = <?php the_ID(); ?>;
</script>
//code..
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Попробуйте
global $withcomments;
$withcomments = true;
comments_template();
Ответ написан
@Qumbeez
Воспользоваться Disqus.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы