Как я могу получить разбиение на страницы, работая с этим постом AJAX для фильтра страницы? - PullRequest
0 голосов
/ 04 июня 2019

Я создал динамический фильтр с использованием ajax, который загружает контент на страницу на основе выбранной пользователем опции количества сообщений.Это работает.Проблема, с которой я столкнулся, заключается в том, что я пытаюсь найти способ использовать нумерацию страниц с возвращаемыми публикациями.

Я попытался использовать вместо этого javascript, чтобы переключить URL страницы и перезагрузить с помощьюПользователь выбрал количество сообщений.В любом случае нумерация страниц не работает.Используя ajax, нумерация страниц разбивается, когда WordPress добавляет / page / # к URL.

functions.php

add_action('wp_ajax_myfilter', 'psc_tax_filter');
add_action('wp_ajax_nopriv_myfilter', 'psc_tax_filter');

function psc_tax_filter(){
    if( isset( $_POST['ppp'] ) )
        $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
        $args = array(
            'post_type' => 'products',
            'posts_per_page' => $_POST['ppp'],
            'tax_query' => array(
                array(
                    'taxonomy' => 'product-category',
                    'field'    => 'slug',
                    'terms'    => $_POST['term']
                ),
            ),
        );

    $query = new WP_Query( $args );

    <-- LOOP STUFF -->

};
template code

<div id = "sorter">
<form action="<?php echo site_url() ?>/wp-admin/admin-ajax.php" method="POST" id="tax-filter">
  <label class = "mb-0">
  <select name="ppp">
    <option value="1">Show 1 Per Page</option>
    <option value="2">Show 2 Per Page</option>
    <option value="3">Show 3 Per Page</option>
    <option value="-1">Show All</option>
  </select>

<?php //get the post taxonomy term
$obj = get_queried_object(); ?>
  <input type="hidden" name="term" value="<?php echo $obj->slug; ?>">
  <input type="hidden" name="action" value="myfilter">
</form>

<div id="spinner"><img src="<?php echo get_stylesheet_directory_uri(); ?>/img/spinner.gif">
</div>
</div><!-- #sorter -->

<div id = "sortedPosts"></div>

javascript

$('#tax-filter').change(function() {
    var filter = $('#tax-filter');
    $.ajax({
        url:filter.attr('action'),
        data:filter.serialize(),
        type:filter.attr('method'),
        beforeSend:function(xhr){
            $('#spinner').toggle();
        },
        success:function(data){
            $('#spinner').toggle();
            $('#sortedPosts').html(data);
        }
    });
    return false;
});

Я хотел бы иметь возможность включить элемент пагинации после сообщенийчто позволит пользователю перейти к следующему сообщению и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...