Добавление нумерации страниц AJAX к пользовательскому типу записи - PullRequest
0 голосов
/ 06 июня 2018

В WordPress я использую приведенный ниже код для отображения списка сообщений блога по категориям.Может кто-нибудь, пожалуйста, помогите мне, как я могу добавить AJAX Pagination к каждому сообщению, потому что я хочу отображать только 6 сообщений на странице.

   function get_cat_posts() {

       if ( !wp_verify_nonce( $_REQUEST['nonce'], 'mysite-cat-nav')) {
             exit('No naughty business please');
        } 

        $ids = array();
        if( isset($_POST['term_id']) && !empty($_POST['term_id']) ) {

            $term_id = $_POST['term_id'];
            $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
              $args = array(
                'post_type' => 'post',
                'order'     => 'DESC',
                'posts_per_page' => -1,
                'paged'     => $paged,
                'tax_query' => array(
                      array(
                        'taxonomy' => 'category',
                        'field'    => 'term_id',
                        'terms'    => $term_id,
                      ),
                    ),
              );

Ниже приведен код моего запроса и цикла при отображении сообщений по категориям

// The Query
          $the_query = new WP_Query( $args );

          // The Loop
          if ( $the_query->have_posts() ) {
            while ( $the_query->have_posts() ) {
              $the_query->the_post();
                $id = get_the_ID();
                $title = get_the_title();
                $categories = get_the_category();
                $content = wp_trim_words( get_the_content(), 12, '...' );
                $image = get_the_post_thumbnail();

                echo '<div class="col-container col-md-4">
                    <div id="post-'. $id . '" class="col rj-inner-border">
                        <div class="et_pb_image_container">' . $image . '</div>
                        <div class="rj-the-content">
                            <h2 class="rj-post-title">
                                <a href="'.get_the_permalink().'">'.$title.'</a>
                            </h2>
                            <p class="post-meta">';
                                $count = 1;
                                $category_count = count($categories);
                                foreach ($categories as $category) {
                                    $term_link = get_category_link( $category->term_id );

                                    if($count == $category_count){
                                        echo '<a href="' . $term_link .'" rel="category tag">'. $category->name .'</a> ';
                                    }else{
                                        echo '<a href="' . $term_link .'" rel="category tag">'. $category->name .'</a>, ';
                                    }
                                    $count++;
                                }  
                            echo '</p>
                            <div class="post-content" style="height: 89px;">
                                <p>'. $content.'</p>
                            </div>          

                        </div>
                    </div>
                </div>';
            }           

            wp_reset_postdata();
            } else {
        // no posts found
      }

Все работает отлично, моя единственная проблема - это разбиение на страницы.

Этомой код Ajax при отображении списка сообщений, нажав на вкладки категории.

$(document).on('click', '#menu-menu-blog-categories li.menu-item', function(e) {
        e.preventDefault();
        var term_id = $(this).attr('data-term-id');


        $.ajax({
            url : formaliti.ajax_url,
            type : "POST",
            data : {
                action : 'get_cat_posts',
                nonce : formaliti.nonce,
                term_id : term_id
            },  
            beforeSend : function() {

            },
            success : function(response) {
                $('.fl-node-5b076b128e378').html(response);

            },
            error : function(err) {
                console.log(err);
            }
        });
    });
...