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多行代码,所以不能显示给你。不过,你可以检查我的其他问题以了解。