WordPress как на ладони
Черная пятница на хостинге fornex.com! Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Аякс загрузка комментариев

Помогите с созданием аякс загрузки всех комментариев.

По умолчанию хочу выводить 20 комментов а все остальные нужно уже вывести при нажатии кнопки "показать все комментарии"

Вот нашел код, который помогает это реализовать с помощью GET запроса
Реализовать на аяксе такой функционал было бы просто шикарно, но боюсь, что сам я не справлюсь.

if( isset($_GET['all_comments']) )
		$args['per_page'] = 0; 
// тут вызов функции
wp_list_comments( $args );
0
Андрей
2 месяца назад
  • 1
    Glomberg139 cайт: viktor-web.ru

    Здравствуйте.
    Ajax принципиально состоит из трех частей - это:

    • обработчик на JavaScript (в вашем случае реагирование на нажатие кнопки "Показать все комментарии") с последующей передачи запроса обработчику запроса;
    • обработчик запроса (в вашем случае, к примеру, кусок кода в файле functions.php), который собирает данные;
    • и сама страница (в вашем случае блок комментариев), которая меняет свое содержимое после получения ответа от обработчика запроса.

    В общем что хочу донести. Дать вам готовый код всего этого хозяйства трудоемко. Советую попытаться самому сделать, и, если что-то не получится, отточить фрагменты тут совместно smile

    Андрей 2 месяца назад

    Вот что получилось и даже работает, но нужна тонкая настройка

    Вывожу первые 10 комментов стандартной функцией wp_list_comments

    Дальше идет аякс при клике на h5

    Показать все комментарии

    Вот функция которая срабатывает и выводит следующих 10 комм. при клике

    function gid_load() {        
    		$comments = get_comments(array(
    			'post_id' => 7322,           
    			'status' => 'approve' // комментарии прошедшие модерацию         
    		));
    
    		// Формируем вывод списка полученных комментариев
    		wp_list_comments(array(
    			'callback'          => 'mytheme_comment',
    			'page' => 2,
    			'per_page' => 10, // Пагинация комментариев - по 10 на страницу
    			'reverse_top_level' => false // Показываем последние комментарии в начале
    		), $comments);
    wp_die();
    }

    Ну в общем и сам скрипт

    jQuery(document).ready(function($){
    		$('h5').click(function(){       
    		$.ajax({
    			type: "POST",
    			url: gidurl.url,
    			data: {             
    				action: 'gid_action',                               
    			},          
    			success: function(res){             
    				var j = $("#archi");
    				j.html(res);
    			},
    			error: function(){
    				alert('Error!');
    			}
    		});
    		return false;
    	});
    });
    Андрей 2 месяца назад

    Теперь это до ума довести нужно

    Первое и самое главное
    Функция должна выводить все оставшиеся коменты начиная со второй страницы.
    Значение 'per_page' => 10 можно указать какое угодно, но если указать значение 20, то срабатывать оно будет лишь в тех записях, где есть 20 и более коментов, если комментов меньше 20 ничего не работает.

    Андрей 2 месяца назад

    Было бы классно сделать, как в админке при клике на ссылку Показать ещё комментарии выводит следующих 10 комментов, а потом еще 10 и т.д.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация