问题描述

我想要做的是使用 less css 与 Wordpress 。

您应该将 rel 属性设置为’stylesheet/less’ 来链接到您的.less 文件。但是我不知道如何更改 enqueue_style 输出的代码。

有没有办法应用过滤器并影响输出?

编辑:如果有人对我如何最终得到这个工作好奇,这里是代码片段:

function enqueue_less_styles($tag, $handle) {
    global $wp_styles;
    $match_pattern = '/.less$/U';
    if ( preg_match( $match_pattern, $wp_styles->registered[$handle]->src ) ) {
        $handle = $wp_styles->registered[$handle]->handle;
        $media = $wp_styles->registered[$handle]->args;
        $href = $wp_styles->registered[$handle]->src . '?ver=' . $wp_styles->registered[$handle]->ver;
        $rel = isset($wp_styles->registered[$handle]->extra['alt']) && $wp_styles->registered[$handle]->extra['alt'] ? 'alternate stylesheet' : 'stylesheet';
        $title = isset($wp_styles->registered[$handle]->extra['title']) ? "title='" . esc_attr( $wp_styles->registered[$handle]->extra['title'] ) . "'" : '';

        $tag = "<link rel='stylesheet' id='$handle' $title href='$href' type='text/less' media='$media' />";
    }
    return $tag;
}
add_filter( 'style_loader_tag', 'enqueue_less_styles', 5, 2);

最佳解决方案

是的,最终样式链接输出通过 style_loader_tag 过滤器。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。