微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过ajax进行分页使用正确的分页链接而不是admin-ajax.php/page/n之类的东西?

如何解决如何通过ajax进行分页使用正确的分页链接而不是admin-ajax.php/page/n之类的东西?

我正在尝试更改常规分页链接以通过 ajax 工作,因为我的存档页面还使用了一些与 ajax 一起使用的过滤器。它有效,但只有第一次,一旦它重新生成分页链接,它们都链接到 admin-ajax.PHP/page/n 而不是 my-archive/page/n。

我在分页链接添加一个点击处理程序,这样当您点击一个链接时,它不会导航离开,而是通过 ajax 请求拉取分页数据,这也会重新构建分页链接——那就是href 的 admin-ajax.PHP 部分来自哪里。

有没有办法生成这些链接并强制它们使用存档 url 作为基础而不是 admin-ajax.PHP

我正在使用 Timber,这是我所拥有的:

    $context = Timber::context();

    ob_start();
    Timber::render('02-molecules/resource-listing/resource-listing.twig',$context);

    $results = array(
        'html' => ob_get_clean(),);

我的 resource-listing.twig 文件包含帖子列表和分页链接

{% for post in posts %}
    <li class="m-resource__listing" id="resource-{{post.ID}}">
        <a href="{{post.link}}" title="{{post.preview.read_more(false)}}">
            {{post.title}}
        </a>
    </li>
{% endfor %}


{% include '03-organisms/pagination/pagination.twig' with { pagination: posts.pagination({show_all: false,mid_size: 3,end_size: 2}) } %}

解决方法

您是否使用 e.preventDefault() 来阻止页面加载?我的解决方案是在我的 ajax JS 文件中更改我的点击事件处理程序

$(selector).click(function());

$([selector that is static on the page]).on('click','[selector of pagination link that gets dynamically loaded via AJAX]',function());

URL 中仍然包含 admin-ajax.php,但正确的 jQuery 事件处理程序阻止页面在点击时加载。

这篇文章及其评论帮助我解决了我的问题:Click event doesn't work on dynamically generated elements

,

我最终在每个分页链接的后端用我的存档 url 替换了 ajax url。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。