【问题标题】:Load more posts via Ajax WordPress通过 Ajax WordPress 加载更多帖子
【发布时间】:2015-05-25 16:50:40
【问题描述】:

我在我的投资组合中使用 ajax 加载更多,它运行良好,但是当我将投资组合作为首页时遇到问题,加载更多不再工作,它显示相同的帖子

这是js中加载更多的代码

var isoElem = jQuery('.masonry-images');
if(isoElem.length > 0) {

    var elem = isoElem[0];
    var iso = new Isotope( elem, {
      itemSelector: '.work-image',
    });
}

var page = 1;
 var loadMorePosts = jQuery('#load-more-posts').text();

  function loadMore() {
    page++;
    jQuery.ajax({
        type: "GET",
        url: './page/' + page,
        beforeSend: function () {
            jQuery('#load-more-posts').html("<i class='fa fa-spinner fa-spin'></i>");
        },
        complete: function () {

        },
        success: function (data) {
            var $data = jQuery(data).find('.single-blog,.work-image');
            if ($data.length > 0) {
                jQuery('#load-more-posts').html(loadMorePosts);
              jQuery('#blog-posts,#portfolio-posts').append($data);

              if(isoElem.length > 0) {
                iso.appended($data);
              }

              $data.css("display", "none");
              $data.fadeIn("slow");
            }
            else {
              jQuery('#load-more-posts').html('No More Posts');
            }
        },
        error: function () {
            jQuery('#load-more-posts').html('No More Posts');
        }

    });
}

jQuery('#load-more-posts').click(function(e) {
    e.preventDefault();
    loadMore();
});

您可以在“http://illyrianthemes.com/themes/vicenza/”现场尝试,当我删除 WordPress 的首页时,这里不起作用,然后完美运行,例如检查四列“http://illyrianthemes.com/themes/vicenza/four-columns/”。

最好的问候

【问题讨论】:

  • 我认为 wordpress 使用 admin-ajax.php 处理 AJAX 调用?我已经有一段时间没有在 wp 中使用 ajax 了,但是您应该本地化脚本并在您的 url 中调用它以及一个可以为您提供帖子的函数(在 php 中)。 codex.wordpress.org/AJAX_in_Plugins
  • 主要问题是,只有当我将页面设为首页时,它才有效,当它是常规页面时,它工作得很好。
  • 那么有永久链接的东西应该是问题所在。
  • 是的,一定是这样的,也许它只加载在动态页面而不是静态页面(首页 - 静态)

标签: javascript php jquery ajax wordpress


【解决方案1】:

经过长时间的研究,如果有人需要,我找到了答案。

不要这样做:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts( array( 'post_type' => 'post', 'paged' => $paged ) );

这样做:

if ( get_query_var('paged') ) {

$paged = get_query_var('paged');

} elseif ( get_query_var('page') ) {

$paged = get_query_var('page');

} else {

$paged = 1;

 }

query_posts( array( 'post_type' => 'post', 'paged' => $paged ) );

也许它会对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-19
    • 2023-03-23
    • 1970-01-01
    • 2019-03-18
    • 2012-08-06
    • 2015-10-13
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多