WordPress ajax调用自定义query_vars

时间:2014-03-06 10:31:06

标签: php ajax wordpress

我有一个响应ajax调用的插件但是当我尝试检索查询变量列表时,列表为空。

这是请求:

http://www.xxx.com/wp-admin/admin-ajax.php?minutes=1500&data=1&action=get_cbp_contracts

在我的ajax动作中

class Contracts
{
    [...]

    /**
     * query params
     *
     * @var array
     */
     public static $query_params = array(        
        'minutes' => 'minutes', 
        'data' => 'data'        
    );

    function get_contracts(){
        foreach (Contracts::$query_params as $name => $api_name)
            if ($value = get_query_var($name))
                $p = $value;

    }

    [...]
}

function add_query_vars_filter( $vars ){
  foreach (array_keys(Contracts::$query_params) as $name)
    $vars[] = $name;
  return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

经过一番调查后,我知道add_query_vars_filter()永远不会被执行。有什么想法吗?

编辑: js代码

jQuery.ajax({
            url: '/wp-admin/admin-ajax.php',
            type: 'GET',
            data: form.serialize().replace(/[^&]+=\.?(?:&|$)/g, ''),
            dataType: 'json',
            timeout: 10000,
            success: function(result) {
                [...]
            },
            error: function(jqXHR, textStatus, errorThrown) {
                [...]
            }
        })

1 个答案:

答案 0 :(得分:1)

Arek,我觉得你应该尝试更改数据类型并使用html进行测试。

更改

 dataType: 'json',

 dataType: 'html',