KAGG Design Asked:2020-07-08 15:29:47 +0000 UTC2020-07-08 15:29:47 +0000 UTC 2020-07-08 15:29:47 +0000 UTC 如何在您的 WordPress 主题中正确包含样式表? 772 style.css开发自己的主题时是否需要包含样式文件,还是自动发生? wordpress 3 个回答 Voted Best Answer KAGG Design 2020-07-08T15:29:47Z2020-07-08T15:29:47Z 在我们从现有主题或我们自己的主题从头开始创建子主题的情况下,答案是不同的。 创建一个子主题只需要一个 style.css. /wp-content/themes/моя-дочерняя-тема它始终自动连接 - 这是由您的孩子链接到的主题完成的。 当我们从头开始创建一个新的 WordPress 主题时,事情会变得有点复杂。对于这样一个主题的功能,需要 2 个文件-style.css和index.php. 乍一看,style.css它应该会自动连接。然而,如果我们查看functions.phptwentysevente 默认主题,我们会看到以下代码: /** * Enqueue scripts and styles. */ function twentyseventeen_scripts() { // ... // Theme stylesheet. wp_enqueue_style( 'twentyseventeen-style', get_stylesheet_uri() ); // ... } 天哪!WordPress 开发人员手动将样式文件包含在他们的默认主题style.css中。这又是为什么? 让我们试着弄明白。让我们用名称创建我们的主题,比方说,zero。创建一个/wp-content/themes/zero包含两个文件的文件夹。 我们style.css的包含评论中所需的最少内容和一种样式 - 只是为了查看样式文件是否包含在内。 /* Theme Name: Zero Theme URI: https://kagg.eu/ Author: KAGG Design Author URI: https://kagg.eu/ Description: Создание темы с нуля Version: 1.0 */ h1 { color: deeppink; } index.php我们还将缩小到最合乎逻辑的最小内容,从中我们开始开发新主题 - 页眉、页脚和主循环: <?php get_header(); if ( have_posts() ) : /* Главный цикл */ while ( have_posts() ) : the_post(); the_title( '<h1 class="entry-title">', '</h1>' ); the_content(); endwhile; endif; get_footer(); 一切正常,样式文件已连接(h1 inthe_title()显示为深粉色): 我们创建一个文件header.php- 我们的标题。而空。我们有权利吗? 哦不——样式表去哪儿了?h1 inthe_title()以哀悼黑色显示。 如果我们get_header()从我们的index.php. 让我们弄清楚发生了什么。 get_header()我们从我们调用的函数index.php位于/wp-includes/general-template.php并包含以下行: $templates[] = 'header.php'; locate_template( $templates, true ); locate_template()位于wp-includes/template.php。这是它的完整代码: function locate_template($template_names, $load = false, $require_once = true ) { $located = ''; foreach ( (array) $template_names as $template_name ) { if ( !$template_name ) continue; if ( file_exists(STYLESHEETPATH . '/' . $template_name)) { $located = STYLESHEETPATH . '/' . $template_name; break; } elseif ( file_exists(TEMPLATEPATH . '/' . $template_name) ) { $located = TEMPLATEPATH . '/' . $template_name; break; } elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) { $located = ABSPATH . WPINC . '/theme-compat/' . $template_name; break; } } if ( $load && '' != $located ) load_template( $located, $require_once ); return $located; } 我们可以看到 WordPress 核心首先尝试在子主题文件夹中查找模板文件STYLESHEETPATH,然后在主主题文件夹TEMPLATEPATH中,最后在其子文件夹中。如果我们在新创建的主题中没有自己的模板,zero我们index.php调用get_header(),那么,根据上面的代码,内核将选择它的模板wp-includes/theme-compat/header.php。 我们查看标准的 WordPress 模板wp-includes/theme-compat/header.php并在其中找到以下行: <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> 就是这样 - 连接样式文件style.css!现在很清楚发生了什么以及为什么在标准的 twentesenteen 中手动包含样式文件。 回答问题 如果出现以下情况,样式文件应手动包含在主主题的 functions.php 中: 我们创建自己的 header.php(我们 99% 的时间都这样做) 在我们的 header.php 中,我们不添加该行<link rel="stylesheet"(见上文) 将主题样式文件连接到functions.php如下所示: <?php /** * Enqueue scripts and styles. */ function my_scripts() { // Theme stylesheet. wp_enqueue_style( 'my-style', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'my_scripts' ); 这是funсtions.php启动样式表的最少文本。 但这还不够!所需的最低代码header.php: <?php wp_head(); 所以,如果我们从头开始创建一个主题,使用我们自己的文件header.php,我们将不得不style.css手动包含样式文件: 要么functions.php通过enqueue_style() 或header.php通过<link rel="stylesheet".... 更新 您还可以断开子主题中样式的连接。为此,您需要注释掉子主题wp_head()中的调用。header.php通常header.php是从主题中复制的,所以wp_head()存在。 SeVlad 2020-07-09T03:04:23Z2020-07-09T03:04:23Z 开发自己的主题时是否需要包含 style.css 文件,还是自动发生? 在主题中,一定要使用wp_head( )和wp_footer() ,那么它不仅会自动连接,还会自动连接 style.css所有的脚本等等。没有这些功能,许多插件将无法工作或导致问题。 如果没有 style.css,主题就不会激活。 Islam Ilyasoglu 2020-10-30T16:05:58Z2020-10-30T16:05:58Z 你好。我们回答“如何在您的 WordPress 主题中正确包含样式文件?”这个问题。您也可以在 head - /head 中拥有自己的模板样式,但是将样式添加到 functions.php 文件中已经被认为是一种很好的做法,但是必须将带有主题描述的样式文件添加到根文件夹中主题。WordPress 将自动获取此文件。 所以我们回答了“在开发我自己的主题时我需要包含 style.css 文件还是自动发生?”这个问题。这里有必要区分我们正在谈论的风格。有一个带有主题描述的 style.css 文件。关于主题本身、作者等的描述。此文件是必需的,它必须位于主题的根文件夹中,并且会自动包含此文件。WordPress 激活和识别您的主题需要此文件。但即使在这里也有一个“但是”,如果你没有在 head 中指定 wp_head() - /head; 不会有自动连接功能“或者你需要在footer中添加wp_footer()函数;”我现在记不太清了,不过最好把两个功能都连接起来。如果需要,您可以立即在其中添加样式,但最好为样式创建一个单独的文件。 您必须在 head - /head 或 function.php 文件中手动包含您的样式文件。 这是您需要的和没有的。“简要”:https ://masalkin.name/struktura-wordpress-shablona-ee-dolzhen-znat-kazhdy-j/
在我们从现有主题或我们自己的主题从头开始创建子主题的情况下,答案是不同的。
创建一个子主题只需要一个
style.css./wp-content/themes/моя-дочерняя-тема它始终自动连接 - 这是由您的孩子链接到的主题完成的。当我们从头开始创建一个新的 WordPress 主题时,事情会变得有点复杂。对于这样一个主题的功能,需要 2 个文件-
style.css和index.php.乍一看,
style.css它应该会自动连接。然而,如果我们查看functions.phptwentysevente 默认主题,我们会看到以下代码:天哪!WordPress 开发人员手动将样式文件包含在他们的默认主题
style.css中。这又是为什么?让我们试着弄明白。让我们用名称创建我们的主题,比方说,
zero。创建一个/wp-content/themes/zero包含两个文件的文件夹。我们
style.css的包含评论中所需的最少内容和一种样式 - 只是为了查看样式文件是否包含在内。index.php我们还将缩小到最合乎逻辑的最小内容,从中我们开始开发新主题 - 页眉、页脚和主循环:一切正常,样式文件已连接(h1 in
the_title()显示为深粉色):我们创建一个文件
header.php- 我们的标题。而空。我们有权利吗?哦不——样式表去哪儿了?h1 in
the_title()以哀悼黑色显示。如果我们
get_header()从我们的index.php.让我们弄清楚发生了什么。
get_header()我们从我们调用的函数index.php位于/wp-includes/general-template.php并包含以下行:locate_template()位于wp-includes/template.php。这是它的完整代码:我们可以看到 WordPress 核心首先尝试在子主题文件夹中查找模板文件
STYLESHEETPATH,然后在主主题文件夹TEMPLATEPATH中,最后在其子文件夹中。如果我们在新创建的主题中没有自己的模板,zero我们index.php调用get_header(),那么,根据上面的代码,内核将选择它的模板wp-includes/theme-compat/header.php。我们查看标准的 WordPress 模板
wp-includes/theme-compat/header.php并在其中找到以下行:就是这样 - 连接样式文件
style.css!现在很清楚发生了什么以及为什么在标准的 twentesenteen 中手动包含样式文件。回答问题
如果出现以下情况,样式文件应手动包含在主主题的 functions.php 中:
<link rel="stylesheet"(见上文)将主题样式文件连接到
functions.php如下所示:这是
funсtions.php启动样式表的最少文本。但这还不够!所需的最低代码
header.php:所以,如果我们从头开始创建一个主题,使用我们自己的文件
header.php,我们将不得不style.css手动包含样式文件:functions.php通过enqueue_style()header.php通过<link rel="stylesheet"....更新
您还可以断开子主题中样式的连接。为此,您需要注释掉子主题
wp_head()中的调用。header.php通常header.php是从主题中复制的,所以wp_head()存在。在主题中,一定要使用wp_head( )和wp_footer() ,那么它不仅会自动连接,还会自动连接
style.css所有的脚本等等。没有这些功能,许多插件将无法工作或导致问题。如果没有 style.css,主题就不会激活。
你好。我们回答“如何在您的 WordPress 主题中正确包含样式文件?”这个问题。您也可以在 head - /head 中拥有自己的模板样式,但是将样式添加到 functions.php 文件中已经被认为是一种很好的做法,但是必须将带有主题描述的样式文件添加到根文件夹中主题。WordPress 将自动获取此文件。
所以我们回答了“在开发我自己的主题时我需要包含 style.css 文件还是自动发生?”这个问题。这里有必要区分我们正在谈论的风格。有一个带有主题描述的 style.css 文件。关于主题本身、作者等的描述。此文件是必需的,它必须位于主题的根文件夹中,并且会自动包含此文件。WordPress 激活和识别您的主题需要此文件。但即使在这里也有一个“但是”,如果你没有在 head 中指定 wp_head() - /head; 不会有自动连接功能“或者你需要在footer中添加wp_footer()函数;”我现在记不太清了,不过最好把两个功能都连接起来。如果需要,您可以立即在其中添加样式,但最好为样式创建一个单独的文件。
您必须在 head - /head 或 function.php 文件中手动包含您的样式文件。
这是您需要的和没有的。“简要”:https ://masalkin.name/struktura-wordpress-shablona-ee-dolzhen-znat-kazhdy-j/