Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress:通过过滤器定制Ajax请求响应_Wordpress_Wordpress Theming_Add Filter - Fatal编程技术网

WordPress:通过过滤器定制Ajax请求响应

WordPress:通过过滤器定制Ajax请求响应,wordpress,wordpress-theming,add-filter,Wordpress,Wordpress Theming,Add Filter,父主题中有一个函数,我想自定义成功消息,我不想在父主题文件中进行更改。这个函数是不可插拔的,所以我不能覆盖它。挖掘之后,我发现我可以使用add\u filterhook来过滤响应 我写了这段代码: add_filter( 'wp_ajax_sync-data', 'custom_sync_data' ); function custom_sync_data(){ $response = array( 'success' => true,

父主题中有一个函数,我想自定义成功消息,我不想在父主题文件中进行更改。这个函数是不可插拔的,所以我不能覆盖它。挖掘之后,我发现我可以使用
add\u filter
hook来过滤响应

我写了这段代码:

add_filter( 'wp_ajax_sync-data', 'custom_sync_data' );

function custom_sync_data(){
   $response = array(
               'success' => true,
               'message' => 'Date is updated'
               );
   wp_send_json($response);
}
它执行该任务,但总是返回
success
消息,而不进行任何验证。我不知道,如何传递参数进行验证或决策。

您能试试这个吗

function custom_sync_data($params){
    //$params can be data or parameters you will have to pass
    //or you will have to check
    //based on that your setup validation or logic
    $response = array(
        'success' => true,
        'message' => 'Date is updated'
    );
}
wp_send_json($response);
您还可以使用
var_dump($params)
检查是否有任何内容传递给函数


希望这能有所帮助。

我已经试过了,但是没有任何参数,它什么也不打印。请解释一下你想做什么?我想问题很清楚,但让我再简单解释一下,有一个函数可以在数据库中插入数据。插入后,它将发送成功消息。我想在不影响父主题的情况下自定义该消息。代码(我在问题中添加的)发送正确的消息,但它始终发送该消息,不管函数内部发生什么。如果我放入
exit(),它甚至可以工作。所以,我想验证函数的当前响应,如果成功,则发送我的自定义消息,而不是原始消息。希望它现在有意义。你能在父函数中发布想要覆盖的函数代码吗?有1500多行代码,所以不能显示给你。不过,你可以检查我的其他问题以了解。