我已经在网上拖网寻找答案,但是由于某种原因,我只能找到实际的示例,但是没有特定的解释,对于脚本来说,这是显而易见的。有人可以向我解释为什么在开发主题时加入样式很重要/有好处,而不是仅在header.php中使用<link rel=stylesheet>

另外,主题的默认样式表也应该加入队列吗?

评论

主题审查要求对此感到鼓舞。 codex.wordpress.org/…,尽管您可以选择只将rel =主样式表链接到标题中

默认样式表(即主题目录根目录中的style.css)将自动加载,因此无需排队。如果主题的所有CSS都包含在该样式表中(或者如果您在该样式表中使用“导入”规则来加载CSS),则无需进一步排队。但是,为了在子主题中具有更大的灵活性,有条件地加入可以被任何子主题省略的其他CSS可能是有利的,如@kaiser所示。

#1 楼

排入样式表很重要,因为它将允许子主题灵活地将其排出队列,并允许为依赖项和许多其他事情列出它。它通常为您和与您的代码进行交互的任何其他开发人员都提供了更大的灵活性。

注意,在主题中使用默认样式表不是必需的,这一点也很重要。样式表必须是当前的,但是如果您仅使用样式表来命名主题,设置版本等,那么wordpress就完全可以了,就像批准主存储库主题的人一样。

#2 楼

@ m0r7if3r作为其他答案的补充:

如果有主题支持,则可以使用current_theme_supports()仅加载父主题样式表。

function add_supported_stylesheets()
{
    if ( current_theme_supports( 'parent-stylesheet' ) )
        wp_enqueue_style( 'main', get_stylesheet_directory_uri().'/style.css', array(), filemtime( get_stylesheet_directory().'/style.css' );
}

// In your parent themes bootstrap in the functions.php file
// Add the theme support:
add_theme_support( 'parent-stylesheet' );
// Then add the stylesheet:
add_action( 'after_setup_theme', 'add_supported_stylesheets', 20 );


请注意,此功能会在version-nr上添加filemtime。防止文件内容更改时浏览器缓存。

这将使您的用户可以通过简单的单个fn调用来禁用子主题引导程序中的样式表:

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );


#3 楼

排队的另一个原因是,它允许插件使用样式来处理事情。例如,Better WordPress Minify将自动并连接CSS文件,而WP-LESS将编译您的LESS文件并快速缓存它们。它们都通过挂接到样式队列并处理在那里排列的文件来实现。

出于某些特殊原因,您需要将某些样式从诸如此类的东西中排除,但总的来说,这样做是一件好事您的样式可用于此类有用的功能。