簡體   English   中英

WordPress Ajax 后載

[英]WordPress Ajax post load

我一直在嘗試(並且惱人地失敗了)讓 Ajax 后加載器工作。

這是我正在使用的 jQuery(它來自之前的 StackOverflow 帖子: “加載更多帖子”和 Ajax 在 wordpress 中),但它只是不起作用..我只是想獲得同位素列表 ajax 加載更多但一切我正在嘗試失敗。

jQuery(document).ready(function($){
    $('.pagination a').click(function(e)  {
    e.preventDefault();
    $('.filtered-posts').append("<div class=\"loader\">&nbsp;</div>");

    var link = jQuery(this).attr('href');

    var $content = '.filtered-posts';
    var $nav_wrap = '.pagination';
    var $anchor = '.pagination a';
    var $next_href = $($anchor).attr('href'); // Get URL for the next set of posts

    $.get(''+link+' .item', function(data){
    var $timestamp = new Date().getTime();
    var $new_content = $($content, data).wrapInner('').html(); // Grab just the content
    $('.filtered-posts .loader').remove();
    $next_href = $($anchor, data).attr('href'); // Get the new href
    $($nav_wrap).before($new_content); // Append the new content
    $('#rtz-' + $timestamp).hide().fadeIn('slow'); // Animate load
    $('.pagination a').attr('href', $next_href); // Change the next URL
    $('.pagination:last').remove(); // Remove the original navigation
    });

    });});

這就是我在我的 js 中使用的內容,但是當我單擊標准的 previous_posts_link/next_posts_link 時,它只是沒有加載任何內容。

我在它們周圍放了一個 div 容器以強制上面的 .pagination.. 它短暫地工作但只調用了一次相同的 9 個帖子然后就沒有工作了。

任何幫助都會很棒。 或者,如果有人有不同的 Ajax 分頁指南,他們知道有效..

提前致謝:)

 /* We will edit our javascript snippet with a variable to keep track of the current page, and we add the $ajax call to our ajax function that we will write in the next chapter. */ let currentPage = 1; jQuery('#load-more').on('click', function() { currentPage++; // Do currentPage + 1, because we want to load the next page jQuery.ajax({ type: 'POST', url: '<?php echo admin_url('admin-ajax.php'); ?>', dataType: 'html', data: { action: 'weichie_load_more', paged: currentPage, }, success: function (res) { jQuery('.publication-list').append(res); } }); });
 /* The WordPress query to load posts from a (custom) post type */ <?php $publications = new WP_Query([ 'post_type' => 'publications', 'posts_per_page' => 6, 'orderby' => 'date', 'order' => 'DESC', 'paged' => 1, ]); ?> <?php if($publications->have_posts()): ?> <ul class="publication-list"> <?php while ($publications->have_posts()): $publications->the_post(); get_template_part('parts/card', 'publication'); endwhile; ?> </ul> <?php endif; ?> <?php wp_reset_postdata(); ?> <div class="btn__wrapper"> <a href="#." class="btn btn__primary" id="load-more">Load more</a> </div> functions:php, function weichie_load_more() { $ajaxposts = new WP_Query([ 'post_type' => 'publications', 'posts_per_page' => 6, 'orderby' => 'date', 'order' => 'DESC', 'paged' => $_POST['paged']; ]); $response = '': if($ajaxposts->have_posts()) { while($ajaxposts->have_posts()); $ajaxposts->the_post(). $response,= get_template_part('parts/card'; 'publication'); endwhile; } else { $response = ''; } echo $response; exit, } add_action('wp_ajax_weichie_load_more'; 'weichie_load_more'), add_action('wp_ajax_nopriv_weichie_load_more'; 'weichie_load_more');

暫無
暫無

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

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