自定义分类上的wp_Query运行正常,但如果通过wp_ajax_

时间:2011-10-25 作者:deadlyhifi

我正在使用WP\\u Query根据帖子的自定义分类法整理一些关于帖子的信息。我的论点如下:

$args = array(
        \'posts_per_page\'=> -1,
        \'post_status\' => \'publish\'
    );

    if ( isset($_POST[\'tag_id\']) ) :
        $args[\'tax_query\'] =
            array(array(
                \'taxonomy\' => \'region\',
                \'field\' => \'id\',
                \'terms\' => $_POST[\'tax_id\'],
            ));
    endif;
然后我循环整理我的数据。这非常有效。但是,因为这是一个非常繁重的查询,并且针对每个分类id都会出现,所以我认为应该根据用户的需要运行它,并使用wp\\u ajax返回数据_

当通过ajax返回时,相同的查询似乎忽略了所有tax\\u查询参数。参数相同,正在传递正确的“术语”。一模一样。我想不出来。这是虫子吗?这让我心烦。

已更新以将代码放入粘贴箱:http://pastebin.com/rxSJ1C2n

类位于顶部,然后是我放在底部的jQuery,但实际上它位于一个单独的文件中。

1 个回复
SO网友:Chris_O

我在代码中没有看到您对ajaxurl的调用。您是否真的得到了ajax响应?

尝试以下javascript:

jQuery(document).ready( function($) {
    $("a.getviews").click( function() {
        var td = $(this).parent();
        /* only fetch results once */
        $(this).unbind(\'click\').bind(\'click\', function(){return false;});
        // replace button with loader
        $(td).html(\'<span class="loader"></span>\');

        $.ajax({
                type: \'POST\',
                url: ajaxurl,
                data: { action: "get_views", tax_id: td.attr("id") },
                success: function(response) {
                $("td").html(response);
                return false;                               
            }

            });

            });
    });
对于较大的ajax响应,我总是能够更好地缓冲输出。

添加ob_start(); 在循环之前,然后在循环末尾添加:

$response = ob_get_contents();
                ob_end_clean();

            echo $response;

                die(1);

结束

相关推荐

阻止admin部分(但仍使用admin-ajax.php)

我正在mo建立一个基于社区的WP站点,并阻止任何禁止管理员使用该站点上的管理部分的人:add_action( \'init\', \'sw_block_users\' ); function sw_block_users() { if ( is_admin() && ! current_user_can( \'administrator\' ) ) { wp_redirect( home_url() ); e