试图找到与此问题无关的主题问题,我启动了调试器,并在连接到的函数的第一行启用了断点after_setup_theme
.
在这里,我意识到在呈现页面之前,函数被调用了三次。
这正常吗?这个动作不应该只调用一次吗?
下面是函数的摘录。php(after_setup_theme
是唯一的挂钩功能。php):
function get_theme_text_domain()
{
$theme = wp_get_theme();
return $theme->get(\'TextDomain\');
}
//This is the function that is called 3 times when opening any page of the site
function tamtando_theme_setup()
{
load_textdomain(get_theme_text_domain(), get_template_directory() . \'/languages\');
//[...]
}
add_action(\'after_setup_theme\', \'tamtando_theme_setup\');
为了澄清,检查$wp\\u filter[\'after\\u setup\\u theme]]的值,我发现了两个挂钩:一个来自我的主题,另一个来自“Event Organizer”插件,调用了不同的函数(我想知道开发人员为什么使用这个挂钩,但这与此问题无关)。
SO网友:Krzysiek Dróżdż
after_setup_theme
操作只能调用一次。电话号码是294wp-settings.php
直接归档(不在任何函数内)。所以我不明白怎么/为什么会叫三次。
对于这种情况(调试器停止此函数),我能想到的唯一原因是wp_cron
正在处理一些计划的事件。我不确定届时是否会采取行动,但肯定会包括wp-settings.php
文件,我看不到任何if语句会在wp\\u cron时禁用此操作,因此这是可能的。
记住,WordPress会安排一些事件,即使您没有手动安排它们。
您还应该检查添加时发生的情况echo \'bla\';
在您的after_setup_theme
回拨?它会被重复三次吗?也许只是调试器的问题?