RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 688720
Accepted
KAGG Design
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 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. 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 中:

    1. 我们创建自己的 header.php(我们 99% 的时间都这样做)
    2. 在我们的 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()存在。

    • 15
  2. SeVlad
    2020-07-09T03:04:23Z2020-07-09T03:04:23Z

    开发自己的主题时是否需要包含 style.css 文件,还是自动发生?

    在主题中,一定要使用wp_head( )和wp_footer() ,那么它不仅会自动连接,还会自动连接 style.css所有的脚本等等。没有这些功能,许多插件将无法工作或导致问题。

    如果没有 style.css,主题就不会激活。

    • 3
  3. 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/

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5