gpt4 book ai didi

php - 在 Wordpress 网站上发布预加载 CSS

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:25 24 4
gpt4 key购买 nike

我在 WordPress 网站上预加载 CSS 时遇到问题。我正在编写一个脚本来查找在页脚中排队的每个 JS 和 CSS 脚本,并将其预加载到 <head> 中。 . JS 脚本的代码工作正常(当我转到网站上的页面源代码时,我可以看到带有预加载属性的 <link> 标签),但 CSS 预加载链接标签没有显示。

很可能我做的完全错了,因为我找到了 JS 脚本的工作代码,然后尝试更改它以使其适用于 CSS。例如,我认为版本附加物不适用于 CSS,但我认为它仍然有效,因为它默认为 false,对吗?

作为一个相关问题,我对 webfonts 也有同样的问题。 Google Pageview Insights 告诉我预加载 webfonts,所以我添加了一些 php 来执行此操作,但是当我再次运行 pageview insights 时,没有骰子。

代码如下:

add_action('wp_head', function () {

global $wp_scripts;
global $wp_styles;

foreach($wp_scripts->queue as $handle) {
$script = $wp_scripts->registered[$handle];

//-- Check if script is being enqueued in the footer.
if($script->extra['group'] === 1) {

//-- If version is set, append to end of source.
$source = $script->src . ($script->ver ? "?ver={$script->ver}" : "");

//-- Spit out the tag.
echo "<link rel='preload' href='{$source}' as='script'/>\n";
}
}

foreach($wp_styles->queue as $handle) {
$style = $wp_styles->registered[$handle];

if ($style->extra['group'] === 1) {

$source = $style->src . ($style->ver ? "?ver={$style->ver}" : "");

echo "<link rel='preload' href='{$source}' as='style' onload='this.rel = \"stylesheet\"'/>\n
<noscript><link rel='stylesheet' href='{$source}'/></noscript>\n";
}
}
//This is the code to preload webfonts
echo "<link rel='preload' href='/wp-content/themes/salient/css/fonts/fontawesome-webfont.woff?v=4.2' as='font' type='font/woff'>";
echo "<link rel='preload' href='/wp-content/themes/salient/css/fonts/fontawesome-webfont.ttf?v=4.2' as='font' type='font/ttf'>";
}, 1);

最佳答案

欢迎来到 StackOverflow!

我在元素中使用的有效预加载 CSS 的函数是:

function add_rel_preload($html, $handle, $href, $media) {
if (is_admin())
return $html;

$html = <<<EOT
<link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'"
id='$handle' href='$href' type='text/css' media='all' />
EOT;

return $html;
}

add_filter( 'style_loader_tag', 'add_rel_preload', 10, 4 );

理论上,类似的功能可以用于 JS 和 Webfonts,但这只在 CSS 上进行过测试。

希望对您有所帮助!

关于php - 在 Wordpress 网站上发布预加载 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com