簡體   English   中英

WordPress循環耗盡帖子?

[英]Wordpress loop running out of posts?

我對這里發生的事情感到困惑,我有11個帖子,每次我滾動到頁面底部直到顯示全部11個帖子時,最初加載了3個帖子,並加載了3個帖子。 這可以。

當我單擊一個按鈕並再次將前3個帖子動態加載到頁面上時,就會出現問題。 這是通過.html(data)加載的。

我正在稱為存檔的“頁面”上執行此操作。

好像存檔頁面知道我之前顯示了所有11條帖子,除非我刷新頁面,否則拒絕再次開始。

如何重置循環,或告訴wordpress我想從第三篇文章開始?

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();
}

當您單擊一個按鈕並將前3個帖子重新動態加載到頁面上時,您必須重置變量offset。 還刷新航路點。

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

如果它不起作用,很可能您發布的帖子數量沒有錯誤,但是另一個錯誤阻止了所有工作。

請在輸入航路點時添加提醒

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM