在保存POST期间运行的筛选器/挂钩回调中转储变量的内容

时间:2014-05-15 作者:igrynsh

我只需要调试一个进入addfilter函数的数组,如下所示:

add_filter(\'pll_copy_post_metas\', \'copy_post_metas\');
function copy_post_metas($metas) {
    var_dump($metas);
    return $metas;
}
我怎样才能检查$metas的值是多少?

保存帖子时,此筛选器在admin中运行。

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

当你保存一个帖子时,你基本上是在提交一个大的<form>. 此表单有一个指向某处的操作。现在有两种可能处理表单:

默认情况下,AJAX(后台重新加载)<form> 处理(新请求)基本表单提交是添加一个新请求(2),因此数据会得到处理,然后页面会重新加载-这就是您无法查看转储内容的原因。正在添加exitdie 在您的回拨中(最好在var_dump/var_export/print_r), 将停止进程并让您检查数据。

如果您通过AJAX(1)处理数据,则必须打开浏览器开发工具(开发者工具栏-Chrome、Firebug-FireFox等)并查看控制台/终端。在那里,当AJAX请求得到处理时,通常会找到一个链接。这将引导您进入“网络”(或类似)选项卡,您可以在其中检查请求(标头等)以及预览和/或原始响应。在那里,您将看到转储的数据。

SO网友:helgatheviking

如果我在自己控制的测试环境中(因此不太担心安全性),我有时会保存整个$_POST 一个选项(或者你可以做post meta)。。。这样你就可以var_dump() 以后再说吧。和你一样,我想看看有什么东西被送到save_post 钩子,但没想到用die() 语句停止进程。

function wpa_144460_var_dump( $post_id ){
   update_option( \'kia_testing\', $_POST );
}
add_action( \'save_post\', \'wpa_144460_var_dump\' );
然后,您可以使用以下工具在任何位置查看数据:

var_dump( get_option( \'kia_testing\' ) );

结束

相关推荐

Some ways to debug code

我有一个BuddyPress安装,有许多自定义代码。在我将数据库移动到共享主机之前,我已经为生产做好了一切准备。问题是,在奇怪的地方,所有的活动wp_bp_activity 已删除。我并不是说这个问题的出现是因为我移动了数据库,但我无法用我的原始安装重现这个错误(但当我在本地计算机上完成托管数据库的新安装时,也遇到了同样的问题)我的详细信息:1) 我不相信这个DELETE 使用buddypress本机代码触发,因为所有内容都保持原样wp_bp_activity_meta.2) 我无法复制这个bug,也无法