调用After_Setup_Theme三次

时间:2013-06-21 作者:Andrea Sciamanna

试图找到与此问题无关的主题问题,我启动了调试器,并在连接到的函数的第一行启用了断点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”插件,调用了不同的函数(我想知道开发人员为什么使用这个挂钩,但这与此问题无关)。

2 个回复
SO网友:kaiser

挂钩和过滤器可以附加多个操作。因此$priority 论点简而言之:它只是一个大的多维数组,其中键是挂钩/过滤器名称,值是附加的回调加上它们的优先级。

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 回拨?它会被重复三次吗?也许只是调试器的问题?

结束

相关推荐

Combining wordpress themes

有没有办法在不使用插件呈现不同主题的页面的情况下组合两个Wordpress主题,如果有,最有效的方法是什么?它是否像复制和粘贴一个主题的功能一样简单。php(和其他文件)进入第一个主题?我是否制作儿童主题?我正试图为全球的清洁能源计划建立一个数据库,并且喜欢我购买的其中一个主题的地图功能。然而,一旦你通过地图,主题就不是很好用,也不能容纳很多信息。这就是第二个主题。如果可能的话,我想保留这两个主题的功能。