php - Wordpress PHP 如何使用 AJAX/JQUERY 添加加载更多功能
问题描述
ajax
我想通过使用and向我的 Wordpress 页面添加“加载更多”功能jquery
。现在,我通过设置获得了五项数据,posts_per_page => 5
但由于某种原因,当我单击加载更多按钮时,它总是加载相同的五项/帖子,所以有人可以告诉我我做错了什么吗?
这是我的 PHP 代码(functions.php)
$args = array(
'post_type' => array('news'),
'post_status' => array('publish'),
'posts_per_page' => 5
);
$query = new WP_Query($args);
这是我的 JS 代码:
let news_offset = 5;
loadMore(news_offset);
$('.loadmore').on("click", e => {
e.preventDefault();
news_offset++;
loadMore(news_offset);
});
function loadMore(news_offset) {
$.ajax({
url: "/wp-admin/admin-ajax.php",
data: {
action: "fetch_news",
offset: news_offset
},
success: function(data) {
// Append results to DOM
$(".news").append(data);
},
error: function(errorThrown) {
console.log(errorThrown);
}
});
}
欢迎提出任何建议或意见:-)
解决方案
请添加偏移量WP_query
$my_offset = $_POST['offset']; //Fetch offset from the ajax request
$args = array(
'post_type' => array('news'),
'post_status' => array('publish'),
'posts_per_page' => 5,
'offset' => $my_offset
);
$query = new WP_Query($args);
在你的 JS 代码中:
let news_offset = 5; //Start with 0 if you don't have posts on page
loadMore(news_offset);
$('.loadmore').on("click", e => {
e.preventDefault();
news_offset += 5; //Increment by 5
loadMore(news_offset);
});
function loadMore(news_offset) {
$.ajax({
url: "/wp-admin/admin-ajax.php",
method: "POST",
data: {
action: "fetch_news",
offset: news_offset
},
success: function(data) {
// Append results to DOM
$(".news").append(data);
},
error: function(errorThrown) {
console.log(errorThrown);
}
});
}
推荐阅读
- python - 某个呼叫类别的第一次呼叫与同一呼叫类别的后续呼叫之间的调查分数差异
- javascript - 求解未知指数
- google-apps-script - 清除单元格时出错 - 简单脚本
- java - 无法加载我的世界插件
- sql - Rails:如何在 rails 的非 id 列上创建聚集索引?
- python - 创建一个序列,其中每个元素中的两个满足特定距离标准
- powershell - 在 Powershell 的 WHERE 子句中添加多个 -and 和 -or 语句
- azure - 如何通过 Azure Logic App 使用模板将 CSV 转换为 JSON
- python - 如何比较任何值是否与使用 numpy 的任何其他值相似
- python - 解析 .dms 文件中存在的深层嵌套 JSON 数据