做get_posts()时,Argumenets不执行

时间:2018-10-30 09:43:19

标签: javascript php ajax wordpress pagination

我正在尝试利用AJAX进行分页。但是,我的get_posts()调用似乎没有从我的自定义分类法Case Studies中找到任何结果。

  • Case Studies总共有 10个帖子
  • 默认显示5条帖子,然后单击Load more,还会显示5条帖子。
  • 问题出在ajax_handler()上-我不确定我的论点出在哪里。我已经尝试过query_postsget_posts()

jQuery(function($){

    $('#loadmore').click(function(){

        var column_width = $(this).data('column-width');
        var max_num_pages = $(this).data('max-num-pages');
        var post_type = $(this).data('type');

        var button = $(this),
          data = {
            action:'loadmore',
            query: loadmore_params.posts, // that's how we get params from wp_localize_script() function
            page : loadmore_params.current_page,
            security : loadmore_params.security,
            columns : column_width,
            max_num_pages : max_num_pages,
            post_type : post_type
          };  

        $.ajax({
            url : loadmore_params.ajaxurl, // ajax handler
            data : data,
            type : 'POST',

            beforeSend : function ( xhr ) {
                button.text('Loading...'); 
            },

            // return data on succesful callback ...
            success : function( data ){
                if( data ) {
                    button.text( 'Load More' ).prev().before(data); // insert new posts
                    loadmore_params.current_page++;

                    // where to insert new posts...
                    $('.case-studies-container').find('.case-card').last().after( data );

                    // if it's the last page in the query, remove the button
                    // if ( loadmore_params.current_page == max_num_pages )
                    //     button.remove(); 

                     console.log(data);

                } else {
                    // remove the button if there's no more content to load
                    button.remove(); 
                }
            },

            error : function(error){ 
                console.log(error);
            }
        });
    });
});
<?php
function ajax_handler(){

  check_ajax_referer('load_more', 'security');
 
  // prepare our arguments for the query
  $args = json_decode( stripslashes( $_POST['query'] ), true ); 
  $args['paged'] = $_POST['page'] + 1; // we need next page to be loaded
  $args['post_status'] = 'publish';
  $args['max_num_pages'] = $_POST['max_num_pages'];

  $posts = query_posts( $args );

  var_dump($posts);

  if( have_posts() ) :

    while( have_posts() ): the_post(); 
        
    // get template part here

    endwhile;
  endif;

  die;
}
?>

  • var_dump($posts)返回array(0) {}
  • var_dump($args)不返回任何信息,甚至不返回帖子ID。

不确定我缺少什么或做错了吗?

0 个答案:

没有答案