排队主题的样式表有多重要?


19

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

另外,主题的默认样式表又该如何入队呢?


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

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

Answers:


17

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

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


17

作为@ 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 );

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

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

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

3

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

出于某些特殊原因,您需要将某些样式从诸如此类的东西中排除,但是通常最好将样式提供给此类有用的功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.