我正在创建一个插件,它总是将脚本排在页脚中。我还有一个函数,如果调用该函数,将使依赖于另一个脚本的其他脚本排队。这是我的插件的基本格式。。。
<?php
class MyPlugin {
public function __construct() {
add_action(\'wp_enqueue_scripts\', array($this, \'enqueue_scripts\'));
}
public function enqueue_scripts() {
wp_enqueue_script(\'myscript\', plugins_url(\'js/myscript.js\', __FILE__), array(\'jquery\'), null, true);
}
public function api() {
add_action(\'wp_enqueue_scripts\', array($this, \'api_scripts\'));
}
public function api_scripts() {
wp_enqueue_script(\'api\', plugins_url(\'js/api.js\', __FILE__), array(\'myscript\'), null, true);
}
}
$_GLOBALS[\'myplugin\'] = new MyPlugin();
在我的主题功能中。php文件我想知道什么时候我可以打电话让脚本排队。我已尝试附加到加载的plugins\\u,但未调用脚本。
<?php
function myfunction() {
global $myplugin;
$myplugin->api();
}
add_action(\'plugins_loaded\', \'myfunction\');
最合适的回答,由SO网友:s_ha_dum 整理而成
功能wp_enqueue_scripts
-- 带“s”-用作callback to wp_head
. 所有这些功能wp_enqueue_scripts
做is fire the wp_enqueue_scripts
action. 所以最后一次你可以使用这个动作wp_enqueue_scripts
在wp_enqueue_scripts
上的回调wp_head
钩
就主题模板而言,这意味着您需要在get_header
, 或者在一个钩子上运行,这个钩子在钩子序列中运行得足够早。
注意事项:
是的$GLOBAL
不$_GLOBALS
-- 不一致,我知道如果没有钩住plugins_loaded
. 就是这个主题functions.php
: global $myplugin; $myplugin->api();
. 我不能说我知道为什么钩子版不起作用。我想这只是太早了,但必须做一些研究来锻炼力学。after_setup_theme
有效,也有效wp_loaded