Как поправить load more в WP?

Делаю у себя ajax фильтры постов + кнопка "Показать больше" по вот этой инструкции

Фильтры отлично работают, а вот кнопка load more - она создает проблему.

Если я отфильтровал записи по категориям
5f2aa6a30dd30077099183.png

То, по задумке, кнопка "load more" должна подгружать записи из отфильтрованных категорий. А она подгружает все записи.

Знаю, что отфильтрованные категории массивом нужно передать сюда:
function misha_loadmore_ajax_handler(){
	...
	$args['category_name'] = 'services, categories';
	...
}

Но как правильно это сделать - не знаю.

P.S Сами фильтры категорий в шаблоне (а у меня два фильтра) - выводятся так:
<?php
        $cat_services = get_category_by_slug('services');
        $categories_services = get_categories( [
            'taxonomy'     => 'category',
            'type'         => 'post',
            'parent'       => $cat_services->term_id,
            'hide_empty'   => 0,
        ] );

        echo '<h3>'. $cat_services->cat_name .'</h3>';

        if( $categories_services ){
            echo '<ul class="cat-check-list" id="categoryfilter-1" name="categoryfilter-1">';
            foreach( $categories_services as $cat ){
                echo '<li><div class="checkbox-custom"><span><label for="category_'. $cat->cat_ID .'"><input type="checkbox" id="category_'. $cat->cat_ID .'" name="category_'. $cat->cat_ID .'" />' . $cat->name . '</label></span></div></li>';
            }
            echo '</ul>';
        }


        $cat_categories = get_category_by_slug('categories');
        $categories_categories = get_categories( [
            'taxonomy'     => 'category',
            'type'         => 'post',
            'parent'       => $cat_categories->term_id,
            'hide_empty'   => 0,
        ] );

        echo '<h3>'. $cat_categories->cat_name .'</h3>';
        if( $categories_categories ){
            echo '<ul class="cat-check-list" id="categoryfilter-2" name="categoryfilter-2">';
            foreach( $categories_categories as $cat ){
                echo '<li><div class="checkbox-custom"><span><label for="category_'. $cat->cat_ID .'"><input type="checkbox" id="category_'. $cat->cat_ID .'" name="category_'. $cat->cat_ID .'" />' . $cat->name . '</label></span></div></li>';
            }
            echo '</ul>';
        }
	?>
  • Вопрос задан
  • 708 просмотров
Решения вопроса 1
Kozack
@Kozack Куратор тега WordPress
Thinking about a11y
На стороне клиента собираете выбранные категории и передаёте на сервер
data : {
      'action': 'loadmore', // the parameter for admin-ajax.php
      'query': misha_loadmore_params.posts, // loop parameters passed by wp_localize_script()
      'page' : misha_loadmore_params.current_page // current page
      'categories': ...
    },

На сервере принимаете этот параметр
$args['category_name'] = $_POST['categories']
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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