如何通过 ajax 进行分页使用正确的分页链接而不是像 admin-ajax.php/page/n 这样的链接?
How to make pagination via ajax use the correct pagination links and not something like admin-ajax.php/page/n?
我正在尝试更改常规分页 link 以通过 ajax 工作,因为我的存档页面还使用了一些可与 ajax 一起使用的过滤器。它只是第一次工作,一旦它重新生成分页 links,它们都会 link 到 admin-ajax.php/page/n 而不是 my-archive/page/n。
我在分页 link 中添加了一个点击处理程序,这样当您点击 link 时它不会离开,而是通过 [= 拉取分页数据30=] 请求,它也重新构建了分页 links——这就是 href 的 admin-ajax.php 部分的来源。
有没有办法生成那些 link 并强制它们使用存档 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(),
);
我的资源-listing.twig 文件有帖子列表和分页 links:
{% 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 事件处理程序阻止页面在点击时加载。
post 及其评论帮助我解决了问题:Click event doesn't work on dynamically generated elements
我最终在每个分页链接的后端用我的存档 url 替换了 ajax url。
我正在尝试更改常规分页 link 以通过 ajax 工作,因为我的存档页面还使用了一些可与 ajax 一起使用的过滤器。它只是第一次工作,一旦它重新生成分页 links,它们都会 link 到 admin-ajax.php/page/n 而不是 my-archive/page/n。
我在分页 link 中添加了一个点击处理程序,这样当您点击 link 时它不会离开,而是通过 [= 拉取分页数据30=] 请求,它也重新构建了分页 links——这就是 href 的 admin-ajax.php 部分的来源。
有没有办法生成那些 link 并强制它们使用存档 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(),
);
我的资源-listing.twig 文件有帖子列表和分页 links:
{% 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()
来阻止页面加载?我的解决方案是从
$(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 事件处理程序阻止页面在点击时加载。
post 及其评论帮助我解决了问题:Click event doesn't work on dynamically generated elements
我最终在每个分页链接的后端用我的存档 url 替换了 ajax url。