使用链接类作为过滤器的Wordpress Ajax调用

时间:2015-01-31 20:35:50

标签: jquery ajax wordpress

所以,我有一个有序列表,我想通过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的那个领域并不是那么好 - 但是又一次,也许我甚至没有想到这个想法。

非常感谢任何帮助。

提前致谢!

约什

1 个答案:

答案 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中。