Как правильно написать AJAX код нумерации страниц? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть проблема, которую нужно решить для программистов и любителей AJAX. У меня есть примеры кода javascript, jquery и php.

  function find_page_number( element ) {
    element.find('span').remove();
        return parseInt( element.html() );
    }

    $(document).on( 'click', '#PaginationExample a', function( event ) {
        event.preventDefault();

        page = find_page_number( $(this).clone() );
$.ajax({
    url: ajaxpagination.ajaxurl,
    type: 'post',
    data: {
        action: 'ajax_pagination',
        query_vars: ajaxpagination.query_vars,
        page: page
    },
    beforeSend: function() {
        $('#showcase').find( 'article' ).remove();
        $('#showcase nav').remove();
        $(document).scrollTop();
        $('#showcase').append( '<div class="page-content" id="loader">Loading New Posts...</div>' );
    },
    success: function(html ) {
        $('#showcase').empty();
        $('#showcase').append(html );
        },

        })
    })
})(jQuery);

functions.php

add_action( 'wp_ajax_nopriv_ajax_pagination', 'ajax_pagination' );
add_action( 'wp_ajax_ajax_pagination', 'ajax_pagination' );

function ajax_pagination() {
$query_vars = json_decode( stripslashes( $_POST['query_vars'] ), true );

    $query_vars['paged'] = $_POST['page'];


    $posts = new WP_Query( $query_vars );
    $GLOBALS['wp_query'] = $posts;

    add_filter( 'editor_max_image_size', 'my_image_size_override' );

    if( ! $posts->have_posts() ) { 
        get_template_part( 'content', 'none' );
    }
    else {
        while ( $posts->have_posts() ) { 
            $posts->the_post();
            get_template_part( 'content', get_post_format() );
        }
    }
    remove_filter( 'editor_max_image_size', 'my_image_size_override' );

    the_posts_pagination( array(
        'prev_text'          => __( 'Previous page', 'webisawesome' ),
        'next_text'          => __( 'Next page', 'webisawesome' ),
        'before_page_number' => '<ul id="PaginationExample">' . __( 'Page', 'webisawesome' ) . ' </ul>',
    ) );

    wp_die();
}

function my_image_size_override() {
    return array( 825, 510 );
}


function add_myjavascript(){
  wp_enqueue_script( 'ajax-pagination', get_template_directory_uri(). '/js/ajax-pagination.js', array( 'jquery' ), '1.0', true  );
 global $wp_query;
  wp_localize_script( 'ajax-pagination', 'ajaxpagination', array(
    'ajaxurl' => admin_url( 'admin-ajax.php' ),
    'query_vars' => json_encode( $wp_query->query )
));

  }
  add_action( 'init', 'add_myjavascript' );

HTML часть

<nav>   <ul id='PaginationExample' style=" display:flex;
  justify-content:center;">
 <li><?php previous_posts_link('&laquo; Back ') ?></li>||
 <li><?php next_posts_link('Forward &raquo;') ?></li>
  </ul></nav>

Так, кто может ответить, почему он возвращается к 0 после нажатия на страницы? Кто-нибудь знает, что может быть не так и чего не хватает, чтобы заставить код работать правильно и публиковать посты? Мой сайт https://www.webisawesome.com/category/services на основе WordPress :) Дайте мне знать, если вам нужна дополнительная информация об этом. Спасибо всем!

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