首页 > 解决方案 > 在 wordpress 中预加载后尝试重新排队样式表

问题描述

我目前正在尝试在 wordpress 中预加载某些样式表。到目前为止,我已经设法通过使用过滤器来预加载它们。

function add_styles() {
   wp_enqueue_style('my_stylesheet', '/path', false, null);
}

add_action('wp_enqueue_scripts', 'add_styles', 10);

function preload($html, $handle) {
   if (strcmp($handle, 'my_stylesheet') === 0) {
      $html = str_replace("rel='stylesheet'", "rel='preload' as='style'", $html);
   }

   return $html;
}

add_filter('style_loader_tag', 'preload', 10, 2);

问题是,根据https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content,在我预加载样式表之后,我需要再次链接它

所以要做到这一点,我会假设我可以通过

function reload() {
   wp_enqueue_style('my_stylesheet', '/path', false, null);
}

add_action('wp_enqueue_scripts', 'reload', 11, 2);

但这不起作用。如果我echo 'preloaded';在 preload 函数和echo 'reloaded';reload 函数中,我可以看到,无论优先级或位置如何,它总是会尝试最后“预加载”,这样我就无法将样式表重新排入队列并且它不会加载..是有没有办法确保在预加载过滤器完成后重新加载?还是有其他方法可以做到这一点?任何帮助,将不胜感激。

标签: wordpress

解决方案


推荐阅读