Wordpress category post AJAX Pagination

后端 未结 2 1132
梦毁少年i
梦毁少年i 2021-01-21 21:55

I\'m really struggling to find a way to create pagination with ajax for my Wordpress posts. The solutions that I have found do not work.

To be more informative about th

2条回答
  •  萌比男神i
    2021-01-21 22:49

    filter.js file

        $('#post-category').change(function(){
                category = $(this).find('.selected').text();
                postType = $('#search-form-type').val();
                post_filter();
            });
    
    
        function post_filter(paged){
                $.ajax(
                    {
                        url:ajaxUrl,
                        type:"POST",
                        data: {action:"get_post_category","category":category,'search':search, 'postType':postType, 'paged': paged},
                        success: function(response) {
                        $('#blog-post-cover').html(response);
                    }
                });
            }
    
            $('#blog-wrapper').on('click','#pagination a',function(e){
                e.preventDefault();     
                if ($(this).hasClass('prev')||$(this).hasClass('next')) {
                    paginateNum = $(this).find('.prev-next').data('attr');
                    post_filter(paginateNum);
                }
                else{
                    paginateNum = $(this).text();
                    post_filter(paginateNum);
                }
                $("html, body").animate({ scrollTop: 0 }, "slow");
            });
            postType = $('#search-form-type').val();
            post_filter(1);
    

    function.php file

    add_action( 'wp_ajax_nopriv_get_post_category', 'post_category' );
    add_action( 'wp_ajax_get_post_category', 'post_category' );   
    function post_category() {
        $post_type = $_POST['postType'];      
        $category = $_POST['category'];
        $search = $_POST['search'];
        $paged = ($_POST['paged'])? $_POST['paged'] : 1;
        if($post_type==="resource-center"):
            $taxonomy ="resource-center-taxonomy";
        else:
            $taxonomy ="category";
        endif;
        if($category):
            $args = array(
                'post_type'         => $post_type,
                'post_status'       => 'publish',
                'tax_query' => array(
                    array(
                        'taxonomy' => $taxonomy,
                        'field'    => 'slug',
                        'terms'    => $category,
                    ),
                ),
                'posts_per_page'    => 5,
                'order'             => 'ASC',
                's'                 => $search,
                'paged'             => $paged
            );
        else:
            $args = array(
                'post_type'         => $post_type,
                'post_status'       => 'publish',
                'posts_per_page'    => 5,
                'order'             => 'ASC',
                's'                 => $search,
                'paged'             => $paged
            );
        endif;
    
        $posts = new WP_Query($args);?>
        have_posts() ) :?>
            have_posts()) : $posts->the_post(); ?>
        post_title; ?>
            
            max_num_pages;
                $pagination_args = array(
                'base'               => '%_%',
                'format'             => '?paged=%#%',
                'total'              => $total,
                'current'            => $paged,
                'show_all'           => false,
                'end_size'           => 1,
                'mid_size'           => 2,
                'prev_next'          => true,
                'prev_text'       => __('«'),
                'next_text'       => __('»'),
                'type'               => 'plain',
                'add_args'           => false,
                'add_fragment'       => '',
                'before_page_number' => '',
                'after_page_number'  => ''
            );
            $paginate_links = paginate_links($pagination_args);
    
            if ($paginate_links) {
                echo "";
            }?>
            
                   
           

    Posts Not Found

提交回复
热议问题