为什么在加载一个页面时,函数.php文件会被调用8次? 时间:2016-11-03 作者:Sandun 我只是在函数中添加了以下代码。php。$my_post = array( \'post_title\' => \'Test Title 02\', \'post_content\' => \'Test Des 02\', \'post_status\' => \'publish\', \'post_author\' => 1 ); wp_insert_post( $my_post ); 一次页面加载就创建了8篇帖子。看起来像是函数。php文件被调用8次,只需加载一个页面。为什么会这样?这是怎么发生的? 2 个回复 SO网友:jgraup 添加一个插件,如Kint Debugger + Debug Bar 并将以下代码添加到functions.php. global $wp; ob_start(\'kint_debug_ob\'); d($wp); ob_end_flush(); 当您检查调试栏时,您应该看到回溯,它将告诉您触发了哪些顺序函数。对于单个请求,加载8次是相当高的。如果您不想走插件路线,还可以使用一个不太详细的回溯功能-wp_debug_backtrace_summary.echo "<!----- BACKTRACE / START ----->"; print_r ( wp_debug_backtrace_summary() ); echo "<!----- BACKTRACE / END ----->"; 只是随机的wp_insert_post 在您的functions.php 所以也许可以把你的逻辑包装在一个钩子里init 同时也能帮上忙。也有可能这不仅仅是一个请求。heartbeats 如果您在管理部分,将ping后端,这是可能的wp-cron 也可以触发它加载(但我不确定)。要再次检查所有内容,请启用WP_DEBUG_LOG 并记录事件。 SO网友:T.Todua Solution - 始终将命令置于操作中:add_action(\'init\', \'my_func\'); function my_func(){ //....... //....... wp_insert_post( $my_post ); } 此外,为了避免重复包含,请将此代码放在的顶部。php文件:if (defined(\'my_wpse_9999\')) || !define(\'my_wpse_9999\',true)) return; 文章导航