Wordpress循环用完帖子?

时间:2013-12-12 22:39:13

标签: javascript php jquery wordpress

我对这里发生的事感到困惑,我有11个帖子,其中3个最初加载,每次滚动到页面底部时加载3个,直到显示所有11个。这很好。

当我单击按钮并再次将前3个帖子动态加载到页面上时,会出现问题。这是通过.html(数据)加载的。

我在名为档案的“页面”上这样做。

就好像存档页面知道我之前显示过所有11个帖子而拒绝重新开始,除非我刷新页面。

如何重置循环,或告诉wordpress我想再次从第3篇帖子开始?

jQuery(document).ready(function($){
    $("a.sort-all").bind("click", function(e) {
        load_posts(this);
        e.preventDefault();                 
    });

    function load_posts() {
        var ajax_url = $('.sort-all').attr('data-all-url');
        $.ajax({
            dataType: "HTML",
            url: ajax_url,
            type:'POST',
            data:{
                action: 'data_click_all',
                offset: offset
            },
            success:function(data) {
                $('#content').html(data);
            }
        });

    }

    var ajax_url = $('.sort-all').attr('data-all-url');
    var offset = 0;
    $('#content').waypoint(function(direction) {
        if(direction === 'down'){
            offset = parseInt(offset) + 3;
            $.ajax({
                dataType: "HTML",
                url: ajax_url,
                type:'POST',
                data:{
                    action: 'data_scroll_all',
                    offset: offset
                },
                success:function(data) {
                    $('#content').append(data);
                    $.waypoints('refresh');
                }
            });
        }
    }, {
        offset: 'bottom-in-view'
    });
}); 

if (!class_exists('load_posts')) {
    class load_posts    {
        /**
        * PHP 4 Compatible Constructor
        */
        function load_posts(){$this->__construct();}
        /**
        * PHP 5 Constructor
            */      
        function __construct(){
            add_action('wp_ajax_data_scroll_all', array(&$this, 'data_scroll_all'));
            add_action('wp_ajax_nopriv_data_scroll_all', array(&$this, 'data_scroll_all'));
            //----//
            add_action('wp_ajax_data_click_all', array(&$this, 'data_click_all'));
            add_action('wp_ajax_nopriv_data_click_all', array(&$this, 'data_click_all'));
        }

        function data_click_all(){
            global $post;
            $offset = $_POST['offset'];
            $args = array('posts_per_page' => 3, 'offset' => $offset, 'category__not_in' => 1,'orderby' => 'date');
            $myposts = get_posts( $args );
            foreach( $myposts as $post ) {
                setup_postdata($post);
                get_template_part( 'content-archive' );
            } wp_reset_query();
            die('');
        }

        function data_scroll_all(){
            global $post;
            $offset = $_POST['offset'];
            $args = array('posts_per_page' => 3, 'category__not_in' => 1, 'offset' => $offset, 'orderby' => 'date');
            $myposts = get_posts( $args );
            foreach( $myposts as $post ) {
                setup_postdata($post);
                get_template_part( 'content-archive' );
            } wp_reset_query();
            die('');
        }


    }
}
if (class_exists('load_posts')) {
    $newload_posts = new load_posts();
}

1 个答案:

答案 0 :(得分:0)

当您单击按钮并再次将前3个帖子动态加载到页面上时,您必须重置变量偏移量。还要刷新航点。

 $("a.sort-all").bind("click", function(e) {
         offset=0;
         load_posts(this);
        $.waypoints('refresh');
        e.preventDefault();                 
    });

如果它不起作用,可能你的帖子数量没有错误,但是另一个错误阻止一切工作。

请输入航点时添加提醒

$('#content').waypoint(function(direction) {
      alert("current: "+offset);
///...