模板_重定向级别上的WP_ENQUEUE_STYLE?

时间:2019-05-04 作者:JohnnyBratsoni

为了在我的WordPress安装中提供最小的HTML输出,我正在使用以下功能,该功能运行良好:

add_action( \'template_redirect\', \'test\' );

function test()
{ 
?>
<!doctype html>
<html lang="en-US">
<head>
<link rel=\'stylesheet\' type=\'text/css\' href=\'<?php echo home_url() ?>/wp-content/plugins/myplugin/style.css\'>
</head>
<body>
</body>
</html>
<?php 
    exit();
}
这正是我想要的,但我正在考虑以适当的方式加载我的样式,使用wp_enqueue_style.

由于im未加载wp_head, 我试过了,但似乎不可能template_redirect level.

有没有什么方法可以将我的风格列在我的函数中,而不必对其进行硬编码?

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

使用的原因wp_enqueue_style 允许WordPress管理样式表之间的依赖关系。因为这里只输出一个基本页面,所以使用它真的没有意义。

也就是说,如果你看看hook order, 你看到了吗template_redirect 实际上是在过程的后期调用的,就在脚本和样式排队之前,但在wp_head. 正如您在list of default filters/actions (正如你所发现的)脚本和样式只在wp_head 阶段,使用以下代码行:

add_action( \'wp_head\', \'wp_print_styles\', 8 );
因此,如果要在template_redirect 在这个阶段,您必须通过提前运行排队和打印过程来作弊。不过,这并不太难,因为WordPress在这个阶段已经完全加载完毕。所有功能都可用,包括styles class. 代替你的台词<link rel = ... > 您可以提前执行样式命令链,如下所示:

wp_styles (); // initialize the styles object
wp_enqueue_style (\'my_handle\', \'path-to-file\'); // make the file ready for printing
wp_print_styles (); // print the enqueued style
我没有测试这一点,因为它没有真正意义,但我希望你明白这一点。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。