如何在WordPress中用wp_enQueue_style制作子主题?使用足够的主题

时间:2017-04-21 作者:Desperado

我使用了足够多的主题,我想以codex中建议的方式创建一个子主题,即使用wp\\U enqueue\\U样式。我是按照解释的方式做的,但左边距现在更像是向右缩进。在我看来,似乎有一些样式表加载问题。

我创造了风格。css和函数。php在子主题文件夹中。在父主题文件夹中有1个样式。css文件和“/css”目录中的11个css文件。

我尝试了很多事情,但都做不好。下面是我如何尝试加载父主题样式表。

<?php
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {

    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/admin-options.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/base.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/colors.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/box-modules.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/approach.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/comment.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/fonts.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/layout-fluid.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/normalize.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/post-format.css\' );
    wp_enqueue_style( \'styles\', get_template_directory_uri() . \'/css/ua.css\' );
}
?> 
我使用“style”作为第一个参数,因为在函数中。php中的父主题i.i足够了,我有以下代码,(我在代码行前面放了一行带箭头的------------------------------->)-

/**
 *
 *
 */
if ( !function_exists( "enough_enqueue_scripts_styles" ) ) {

    function enough_enqueue_scripts_styles() {

        global $is_IE, $enough_version;

        $enough_csses = array( "css/normalize.css", "genericons/genericons.css", "css/fonts.css", "css/box-modules.css", "css/comment.css", "css/ua.css", "css/colors.css", "css/base.css", "css/layout-fluid.css", "css/post-format.css", "css/approach.css" );

        foreach ( $enough_csses as $ecnough_css_path ) {

            if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $ecnough_css_path ) ) {

                wp_enqueue_style( \'enough_\' . basename( $ecnough_css_path, \'.css\' ), trailingslashit( get_stylesheet_directory_uri() ) . $ecnough_css_path, array(), $enough_version );
            } else {

                wp_enqueue_style( \'enough_\' . basename( $ecnough_css_path, \'.css\' ), trailingslashit( get_template_directory_uri() ) . $ecnough_css_path, array(), $enough_version );
            }
        }

----------->wp_enqueue_style( \'styles\', get_stylesheet_uri(), array( \'enough_approach\' ), $enough_version );
        $gallery_style = enough_gallerys_css();
        wp_add_inline_style( \'styles\', $gallery_style );

        wp_enqueue_style( \'enough-web-font\', apply_filters( \'enough_web_font\', \'//fonts.googleapis.com/css?family=Ubuntu:400,700\' ) );

        wp_enqueue_script( \'jquery\' );

        wp_enqueue_script( \'comment-reply\' );

        if ( $is_IE ) {

            wp_register_script( \'html5shiv\', get_template_directory_uri() . \'/inc/html5shiv.js\', array(), \'3\', false );

            wp_enqueue_script( \'html5shiv\' );
        }
    }

}
我是否需要在子主题中创建所有css文件?或者我只能有一个css文件,即样式。子主题中的css?正确的做法是什么?

Edited this way

<?php

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( \'parent-style\', get_template_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'style1\', get_template_directory_uri() . \'/css/admin-options.css\' );
    wp_enqueue_style( \'style2\', get_template_directory_uri() . \'/css/base.css\' );
    wp_enqueue_style( \'style3\', get_template_directory_uri() . \'/css/colors.css\' );
    wp_enqueue_style( \'style4\', get_template_directory_uri() . \'/css/box-modules.css\' );
    wp_enqueue_style( \'style5\', get_template_directory_uri() . \'/css/approach.css\' );
    wp_enqueue_style( \'style6\', get_template_directory_uri() . \'/css/comment.css\' );
    wp_enqueue_style( \'style7\', get_template_directory_uri() . \'/css/fonts.css\' );
    wp_enqueue_style( \'style8\', get_template_directory_uri() . \'/css/layout-fluid.css\' );
    wp_enqueue_style( \'style9\', get_template_directory_uri() . \'/css/normalize.css\' );
    wp_enqueue_style( \'style10\', get_template_directory_uri() . \'/css/post-format.css\' );
    wp_enqueue_style( \'style11\', get_template_directory_uri() . \'/css/ua.css\' );

}
?>
这里是style.css 在子主题中

/*
Theme Name: Enough Child
Theme URI: http://www.tenman.info/wp3/enough/
Description: Satisfied enough necessary minimum structure Responsive Theme. HTML5 , Supports Post Format Archives , You can select your favorite Post Format
Author: Tenman
Author URI: http://www.tenman.info/wp3/
Version: 1.22
Tags: two-columns,custom-colors, custom-header, custom-background, custom-menu, editor-style, threaded-comments, sticky-post, flexible-header
Template:     enough
Text Domain: enough-child
License: GNU General Public License v2.0
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
图像_

Parent Enoughenter image description here

2 个回复
最合适的回答,由SO网友:Vinod Dalvi 整理而成

这在WordPress中得到了最好的描述Child theme codex

基本上,要加载子主题和父主题样式表文件,只需在函数中添加以下代码即可。子主题的php文件。

function my_theme_enqueue_styles() {

    $parent_style = \'parent-style\';

    wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'styles\',
    get_stylesheet_directory_uri() . \'/style.css\',
    array( $parent_style, \'enough_base\' ),
    wp_get_theme()->get(\'Version\')
    );
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\', 99 );
如果不更改其他父主题CSS文件,则无需将其排队。

SO网友:sorrow poetry

关于样式您需要为每个样式指定一个名称。如果要在子样式中覆盖它,并且希望父样式在覆盖之前出现,则名称不能相同,并且是必需的。

所以如果你想你的父母style.css 孩子出生后的体重style.css 您需要在functions.php 因此,请将此添加到您的子主题中functions.php:

<?php
function my_theme_enqueue_styles() {

    $parent_style = \'enough_style\'; // needs to be same as parent style

    wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\');
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\',100 ); //it will be queued after base.css and overwrites it
?>
我测试了这段代码,现在效果很好。你的style.css 没关系,你不需要改变它。

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c