所以,我有一个有序列表,我想通过ajax将帖子拉到一个单独的容器中。我知道如何使用任何链接定期拉Ajax,但我想要完成的是利用列表项ID作为ajax pull的过滤器。
所以,这是列表的一个例子:
<ul>
<li class="user" id="1">Thana</li>
<li class="user" id="2">Jim</li>
<li class="user" id="3">Tom</li>
<li class="user" id="4">Sam</li>
</ul>
在该列表中,该类标识了被拉取的元数据的类型,在这种情况下,类用户将与作者的用户ID相关,然后列表项的ID将是他们的用户ID。
我想要的是您点击列表项,然后让Ajax按该用户ID提取所有帖子,并将内容返回到名为#posts-grid的div中。
我假设我必须在Ajax调用之前以某种方式设置变量,但我在jQuery / Javascript的那个领域并不是那么好 - 但是又一次,也许我甚至没有想到这个想法。
非常感谢任何帮助。
提前致谢!
约什
答案 0 :(得分:0)
您的代码可能如下所示:
$(document).ready(function(){
$('.user').click(function(){
var userID = $(this).attr('id');
getUser(userID);
});
function getUser(ID){
$.ajax({
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: {
id: ID,
action: "get_user_posts"
},
type: 'POST',
error: function() {
console.log('error');
},
success: function(data) {
//do something with the return data and place it in post-grid
}
});
}
});
在你的functions.php文件中,你可以注册ajax调用的函数:
add_action('wp_ajax_nopriv_get_user_posts', 'get_user_posts_callback');
add_action('wp_ajax_get_user_posts', 'get_user_posts_callback');
function get_user_posts_callback(){
$id = filter_var($_POST['id'], FILTER_SANITIZE_NUMBER_INT);
//echo result
die('');
}
您可以使用javascript中返回的数据将其放在#post-grid div中。