在Wordpress中为自定义帖子类型设置偏移加载更多按钮

时间:2017-12-04 04:22:43

标签: javascript php jquery ajax wordpress

我在静态首页上显示自定义帖子类型,最初显示8个帖子,我现在创建了一个加载更多按钮,使用我在网上找到的jQuery和AJAX示例,当按钮显示时将显示4个帖子点击。我想知道如何每次添加4到偏移量,以便它继续通过下一个帖子。因为现在每次我点击加载更多按钮它再次显示相同的4。我在front-page.php中的代码:

<script>
var now=2; // when click start in page 2

jQuery(document).on('click', '#load_more_btn', function () {

    jQuery.ajax({
        type: "POST",
        url: "<?php echo get_site_url(); ?>/wp-admin/admin-ajax.php",
        data: {
            action: 'my_load_more_function', // the name of the function in functions.php
            paged: now, // set the page to get the ajax request
            posts_per_page: 4,  //number of post to get (use 1 for testing)
        },
        success: function (data) {

        if(data!=0){
            jQuery("#ajax").append(data);  // put the content into ajax container
            now=now+1; // add 1 to next page
        }else{
               jQuery("#load_more_btn").html("<h4>No more 
results</h4>");
        }
        },
        error: function (errorThrown) {
            alert(errorThrown); // only for debuggin
        }
    });
});

和我的functions.php文件中的代码:

add_action('wp_ajax_my_load_more_function', 'my_load_more_function');
add_action('wp_ajax_nopriv_my_load_more_function', 
'my_load_more_function');

 function my_load_more_function() {
    $offset = 8;
    $page = (get_query_var('page')) ? get_query_var('page') : 1;
    $query = new WP_Query( [
    'posts_per_page' => $_POST["posts_per_page"],
    'order'=>'ASC',
    'offset'=> $offset,
    'post_type' => 'videos',
    'page' => get_query_var('page', $_POST["paged"])
] );

if ($query->have_posts()) {
    $offset = (($page - 1) * 8) - $offset;
    $query->set( 'offset', $offset );

    while ($query->have_posts()) {
            $query->the_post();  
         $img1 = get_field('video_thumbnail'); ?>
        <div class="col-6 col-sm-3 box no-gutters" style="background-
image: url('<?php echo $img1['url']; ?>')"><a href="<?php 
the_field('video_link'); ?>" data-lity><div class="overlay"><span 
class="title"><?php the_field('name'); ?></span></div></a></div>
<?php 
 }
    wp_reset_query();
}else{
    return 0;
}
exit;
}

我想知道如果每次查询在设置为8的初始时间后运行时我都能得到+4的偏移量。我对这类事物很新,似乎无法得到它工作正常。

0 个答案:

没有答案