如何使分页通过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(),
);

我的资源列表。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事件处理程序是防止页面加载点击。

这篇文章和它的评论帮助我解决了我的问题:点击事件不'不工作动态生成的元素

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

最新更新