#1 楼
插件是在主题之前加载的(是的,我一直在寻找借口使用此插件):但是,考虑到其中任何一个都是错误的代码执行。在大多数情况下,应在
init
钩子之前钩住并执行所有内容。根据Codex窗口小部件的注册,应该将register_widget()
钩接到widget_init
。由于在这种情况下加载顺序无关紧要,因此无论如何在小部件需要时,您将已加载所有内容。 评论
WP核心负载将毫无意义。
–加加林
2015年8月27日13:45
我们有机会在2016年获得更新的图表吗? ;-)
– jgraup
16年1月10日在15:04
@jgraup你说WordPress核心中的事情发生了变化... :)
–稀有
16年1月10日在21:19
@Rarst,touché;-)
– jgraup
16年1月10日在21:27
@IsaacLubow是的,不止一列中的内容针对那些各自的上下文运行,因为您可以看到,任何请求始终涉及相同的重要核心负载。
–稀有
18-10-15在11:13
#2 楼
一种有趣的方法是按执行顺序列出到文件的所有钩子。 />add_action( 'all', '_20161224_printer' );
function _20161224_printer( $r ){
$line = microtime(true)*10000 . ' ' . $r . "\n";
$fp = fopen( ABSPATH . 'hooks.txt', 'a+');
fwrite($fp, $line);
fclose($fp);
}
请注意,完整列表根本无法满足每个WPSO帖子的30.000个字符限制,因此我删除了许多动作挂钩。
放置上面的代码在插件中。如果按照主题
functions.php
进行操作,则不会捕获plugins_loaded
。另一项证明插件已在主题之前加载的证明。此检查可能有很多好处,但请注意,对于您将调用的不同页面模板,输出将有所不同,或者您在仪表板中。
我只是从
/?p=1
或Hello World页面中调用此名称。如果您没有激活单个插件,则可以将此代码放入
mu-plugins
文件夹中。使用WP FS API可能会更好,但是这种方式确实很简洁。
评论
内部wp-admin插件在主题之后或按照安装顺序加载...在前端插件中在主题之前加载...
– Vishal Kumar Sahu
17年4月17日在17:17
#3 楼
如果您要的是,您可以在插件的.php文件中包含一个小部件(并可以使用一个共享的全局变量)。这是一本教程,上面有我偶然发现的示例代码。此外,这是一个在典型请求期间按执行顺序运行的动作的列表。 #2和#10建议首先加载插件;不确定functions.php。
评论
正确,插件先于主题文件加载。如果插件包含代码,但不包含所需的窗口小部件,则可以在主题的functions.php中定义窗口小部件。
– Goldenapples
2011年8月22日23:47
评论
Hola Consulta Para lalamar una api api externa en que parte de wordpress lo tendia que hacer?格拉西亚斯您好-您已将其发布为对现有问题的解答,而这实际上是一个新问题。您能问一个新问题吗?该网站是英文网站,但也有Stack Overflow enespañol。
但我认为,广泛的答案是,您可以从插件或主题中的任何位置调用外部API。但是,通常应该缓存响应,并尽可能避免长时间运行的请求。如果您确实想知道此问题,请提供有关您要调用的API以及您想做什么的更多详细信息。谢谢!