在加载更多AJAX WordPress时设置帖子限制

时间:2022-01-06 作者:s.kuznetsov

该网站在vanilla javascript上使用ajax加载更多帖子功能。

Ajax:

postData.append("action", "loadmore");
postData.append("paged", section_posts);
postData.append("posts_per_page", 9);

const xhr = new XMLHttpRequest();
xhr.open("POST", ajaxurl);
xhr.addEventListener("readystatechange", function (data) {
    if (this.readyState === 4 && this.status === 200) {
        section_posts++;
        document.querySelector(".box").innerHTML += data.target.responseText;
    } else {}
});
xhr.send(postData);
这是代码操作ajaxfunction.php:

function loadmore_get_posts(){
  $paged = !empty($_POST[\'paged\']) ? $_POST[\'paged\'] : 1;
    $paged++;

 $args = array(
        \'paged\' => $paged,
        \'posts_per_page\' => $_POST[\'posts_per_page\'],
        \'post_type\'      => \'post\',
        \'post_status\' => \'publish\'
  );

    $data = new WP_Query( $args );
 
    while( $data->have_posts() ) : $data->the_post();
      get_template_part( \'templates/...\' ); 
    endwhile;
  die;
}
add_action(\'wp_ajax_loadmore\', \'loadmore_get_posts\');
add_action(\'wp_ajax_nopriv_loadmore\', \'loadmore_get_posts\');
此功能运行良好!但我需要对帖子总数设定一个限制。

例如:职位总数为100, 但我需要50 要加载的立柱。

请告诉我如何解决我的问题。I need to make a limit on the total number of posts.

谢谢

1 个回复
SO网友:Bysander

v basic可能是这样的

var ppp = 9;
var loaded = ppp;
var maxPosts = 50;
postData.append( \'action\', \'loadmore\' );
postData.append( \'paged\', section_posts );
postData.append( \'posts_per_page\', ppp );

if ( loaded < maxPosts ) { // check if we\'re below the max post number 
    const xhr = new XMLHttpRequest();
    xhr.open( \'POST\', ajaxurl );
    xhr.addEventListener( \'readystatechange\', function ( data ) {
        if ( this.readyState === 4 && this.status === 200 ) {
            loaded = loaded + ppp; // Add our per page to our loaded tally
            section_posts++;
            document.querySelector( \'.box\' ).innerHTML +=
                data.target.responseText;
        } else {
        }
    } );
    xhr.send( postData );
} else {
    alert( \'You have loaded the maximum number of posts\' );
}
不准确-仍会加载ppp 如果loaded 例如,金额为1。如果你想做更多的事情,你可以设置一个次要条件来检查你是否低于限制,但如果添加了ppp

相关推荐

使用AJAX复制帖子加载更多WordPress

滚动时,我的网站上有ajax加载帖子。问题在于出现了重复的帖子。我不明白为什么会这样。只有一些帖子有重复。这是我的密码function.php:function loadmore_get_posts(){ $paged = !empty($_POST[\'paged\']) ? $_POST[\'paged\'] : 1; $paged++; $args = array( \'paged\' => $paged, \'po