为什么在加载一个页面时,函数.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;

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();