在设置主题之后,我可以连接到什么?

时间:2012-08-19 作者:Brett

我想知道我能做什么,不该做什么after_setup_theme? 我很奇怪,因为我被告知我不应该上钩wp_enqueue_style 但我见过其他地方用它来勾引wp_enqueue_script 此处:http://justintadlock.com/archives/2010/12/30/wordpress-theme-function-files

据我所知,这只是一些与主题相关的东西,我很困惑为什么不应该使用wp_enqueue_style 在里面?

我能把这样的东西也扔进去吗?

add_action(\'get_header\', \'enable_threaded_comments\');
add_action(\'widgets_init\', \'unregister_default_wp_widgets\', 1);
remove_action(\'wp_head\', \'rsd_link\');
谢谢!

3 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

把WordPress的执行想象成阶梯上的一系列梯级:WordPress爬一个梯级,然后爬下一个梯级,然后再爬下一个梯级,依此类推。

把动作挂钩想象成横档本身。Here is a (slightly abbreviated, I think) list of those actions, or "rungs" executed during a typical WordPress request.

因此add_action() 调用只是在梯形图上的特定梯级上执行函数的指令。只要你能做到add_action() 在您希望指定函数执行的运行之前调用一个梯级,那么就无所谓了,您使用哪个梯级来创建add_action() 呼叫但是,有理由使用特定的梯级来执行函数。

举个例子:一个主题functions.php 文件执行时间(我相信)after_setup_theme. 因此,您不能使用主题将动作添加到之前的任何梯级after_setup_theme, 因为WordPress已经执行了这些操作(即WordPress已经爬上了阶梯上的那些“梯级”)。

如果你想执行wp_enqueue_script() 在之前挂接到动作的回调中init,WordPress将生成_doing_it_wrong() 注意,因为wp_enqueue_script() 之前不应执行init, 最正确的方法是wp_enqueue_scripts (前端)或admin_enqueue_scripts-{hook} (管理)。

但是:

我能把这样的东西也扔进去吗?

add_action(\'get_header\', \'enable_threaded_comments\');
add_action(\'widgets_init\', \'unregister_default_wp_widgets\', 1);
remove_action(\'wp_head\', \'rsd_link\');
所有这些都很好after_setup_theme, 因为所有指定动作的触发时间都晚于after_setup_theme. 具有add_action(), 您只需告诉WordPress,“将此回调按指定操作排队”具有remove_action(), 您只需告诉WordPress,“从指定操作中删除此回调”

在re中编辑:

回答得很好-谢谢。我理解其中的大部分,但有点困惑,为什么我所有的钩子调用add_actionremove_action 可以,但是wp_enqueue_scripts 不是吗?之后他们都开火了after_setup_theme. 我知道你说是因为我不能执行wp_enqueue_scripts 之前init; 虽然你不告诉我,我怎么知道?例如,我如何知道在执行其他操作之前是否还有其他操作无法执行。

因为add_action() 只需对回调进行排队,在回调中实际执行函数。但功能如下wp_enqueue_script()wp_enqueue_style() 实际上是函数,可以在任何调用它们的地方执行。

SO网友:Mamaduka

我建议检查其他主题如何使用after_setup_theme 勾选以获取总体思路,检查functions.php 主题,如二十一和下划线(\\U s)。

after_setup_theme 主要用于加载主题功能文件,注册对各种功能的支持,如发布缩略图和发布格式,加载翻译文件等。您也可以在主题设置上注册操作和筛选,但我喜欢将它们放在回调函数附近。

wp_enqueue_script()wp_enqueue_style() 函数应连接到适当的操作中-wp_enqueue_scripts

SO网友:Otto

您不应该将wp\\u enqueue\\u样式的函数调用挂接到该函数中,因为存在其他更合适的操作挂钩。

特别是,如果您需要在站点前端排队,那么应该挂接“wp\\u enqueue\\u scripts”挂钩。如果需要在站点的管理端将某些内容排队,则应挂接到“admin\\u enqueue\\u scripts”挂钩。

结束

相关推荐

使用htaccess将wp-Content/Themes/Name/Images掩蔽为仅图像目录

我正在尝试一些我认为非常简单的方法来屏蔽我的url,但似乎无法使其正常工作。我希望能够链接到我的img标签中的图像,而不必键入完整的url。i、 e。Current url: http://server.com/wp-content/themes/standard/images/img.jpg or <img src = \"http://server.com/wp-content/themes/standard/images/img.jpg\" /> 然而,在我的