Use Ajax To filter posts?

时间:2012-07-27 作者:marctain

现在,我正在将一个下拉表单提交到它自己的页面(action=“”),以筛选显示的帖子。

我不想刷新页面,因为页面会重置表单。有没有一种方法可以使用ajax查询/过滤帖子?

3 个回复
最合适的回答,由SO网友:KalenGi 整理而成

我同意“Vinicius”的回答,但有以下变化:

更改type: \'GET\'type: \'POST\'

更改ajax: 1action: \'filter_posts\'

更换add_action(\'init\', \'check_ajax\'); 使用:

add\\u action(\'wp\\u ajax\\u filter\\u posts\',\'check\\u ajax\');add\\u action(\'wp\\u ajax\\u nopriv\\u filter\\u posts\',\'check\\u ajax\');

移除:

if(!isset($\\u POST[\'ajax]])返回false;

SO网友:vmassuchetto

是的,但你得努力一点。假设您通过jQuery发送以下变量:

$.ajax({
    type: \'GET\',
    url: location.href,
    data: {
        ajax: 1,
        category_id: <some_id>
    },
    success: function(data){
        $(\'.posts\').html(data);
    }
});
然后,您将验证请求,如:

add_action(\'init\', \'check_ajax\');
function check_ajax() {

    if (!isset($_POST[\'ajax\']))
        return false;

    $query = new WP_Query( \'cat=\' . intval($_POST[\'category\']) );
    while( $query->have_posts() ) {
        $query->the_post();
        ?>
        <div class="<?php post_class(); ?>">
            <h2> ... <?php the_title(); ?> ... </h2>
            ... your post template
        </div>
        <?php
    }
    exit();

}
它还远远没有完成,也没有经过测试,但我希望它能给你一些指导=D

SO网友:ifdion

您是否在没有AJAX的情况下加载了过滤后的页面?

如果要使用新的WP\\U查询修改主查询,则可以使用此类请求参数

http://wordpress-site.com/page-slug/?query-parameter-1=1&query-parameter-2=2

其中,查询参数可以是分类术语、作者或任何其他参数。

对于JavaScript(JQuery),您只需使用

$(\'#target-div\').load(targetPage + \' #target-div-content\', function() {
    // do script here
});
其中targetPage是请求参数。

希望这有帮助

结束

相关推荐

Metabox中的Plupload-AJAX操作在类中不起作用

我正试图将WP Pluploader放入我帖子页面的元框中-根据Plupload Intergration in a meta-box? 和http://www.krishnakantsharma.com/2012/01/image-uploads-on-wordpress-admin-screens-using-jquery-and-new-plupload/我在第二个链接中的示例中实现了这一切。然而,我想把它全部放在一个类文件中。如果我把它全部打包成一个类,它就会停止工作。这都是因为:function