首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在WordPress中加载更多帖子Ajax按钮

在WordPress中加载更多帖子Ajax按钮
EN

Stack Overflow用户
提问于 2015-07-23 20:21:01
回答 1查看 121.9K关注 0票数 33

我已经看过了老问题,并尝试了许多不同的方法,似乎可以做到这一点。最接近我工作的是这个:How to implement pagination on a custom WP_Query Ajax

我什么都试过了,就是不管用。页面上绝对没有任何变化。如果你检查Load More按钮并点击它,jQuery会使Load More按钮动作从<a id="more_posts">Load More</a>变为<a id="more_posts" disables="disabled">Load More</a>,这在我看来是不正确的。它不是添加帖子,我想我遗漏了一些简单的东西,但对于我的生活,我无法解决它。

我的模板文件中的代码是:

代码语言:javascript
复制
<div id="ajax-posts" class="row">
    <?php 
    $postsPerPage = 3;
    $args = [
        'post_type' => 'post',
        'posts_per_page' => $postsPerPage,
        'cat' => 1
    ];

    $loop = new WP_Query($args);

    while ($loop->have_posts()) : $loop->the_post(); ?>
        <div class="small-12 large-4 columns">
            <h1><?php the_title(); ?></h1>
            <p><?php the_content(); ?></p>
        </div>
        <?php
    endwhile; 

    echo '<a id="more_posts">Load More</a>';
    
    wp_reset_postdata(); 
    ?>
</div>

我的函数文件中的代码是:

代码语言:javascript
复制
function more_post_ajax(){
    $offset = $_POST["offset"];
    $ppp = $_POST["ppp"];

    header("Content-Type: text/html");
    $args = [
        'suppress_filters' => true,
        'post_type' => 'post',
        'posts_per_page' => $ppp,
        'cat' => 1,
        'offset' => $offset,
    ];

    $loop = new WP_Query($args);

    while ($loop->have_posts()) { $loop->the_post(); 
        the_content();
    }
    exit; 
}

add_action('wp_ajax_nopriv_more_post_ajax', 'more_post_ajax'); 
add_action('wp_ajax_more_post_ajax', 'more_post_ajax');

我在页脚的jQuery是:

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
    jQuery(document).ready( function($) {
        var ajaxUrl = "<?php echo admin_url('admin-ajax.php')?>";
        
        // What page we are on.
        var page = 5; 
        // Post per page
        var ppp = 3; 

        $("#more_posts").on("click", function() {
            // When btn is pressed.
            $("#more_posts").attr("disabled",true);

            // Disable the button, temp.
            $.post(ajaxUrl, {
                action: "more_post_ajax",
                offset: (page * ppp) + 1,
                ppp: ppp
            })
            .success(function(posts) {
                page++;
                $("#ajax-posts").append(posts);
                // CHANGE THIS!
                $("#more_posts").attr("disabled", false);
            });
        });
    });
</script>

有谁能看到我遗漏的或者能帮上忙的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-06 20:01:23

如果我没有使用任何类别,那么我如何使用这个代码呢?实际上,我想将此代码用于自定义post类型。

票数 -5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31587210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档