我创建了一个子主题,但它不适用于某些css文件

时间:2016-10-03 作者:sara

我有一个包含4个css文件的模板:rtl.css, style.css, main.css, bootstrap.css.

rtl.cssstyle.css 位于我的模板根目录中,例如:my_template_root/style.css.

main.cssbootstrap.css 位于,例如:my_template_root/assets/stylesheet/main.css

functions.php 代码为:

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( \'parent-style\', get_directory_directory_uri() . \'style.css\' );
}
这个functions.php 代码仅适用于rtl.cssstyle.css 但我的变化main.cssbootstrap.css 无论如何,不要工作。

2 个回复
SO网友:Rishabh

您使用错误的函数调用css文件,如下代码行所示

wp_enqueue_style( \'parent-style\', get_directory_directory_uri() . \'style.css\' );
您正在使用get_directory_directory_uri() 函数调用wordpress中不是事件函数的文件。

必须使用以下两个函数之一调用文件

  1. get_stylesheeet_directory_uri() : 此功能将搜索活动主题文件夹中的文件。“活动主题”是指由用户从dashboard -> appearace -> theme. 在您的情况下,子主题处于活动状态,所以它将搜索子主题文件夹中的文件。

  2. get_template_directory_uri() : 此功能将搜索父主题文件夹中的文件。

如果您的文件位于子主题的文件夹中,请将此代码添加到functions.php 调用css文件

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' ); 
function my_theme_enqueue_styles() { 
    wp_enqueue_style( \'parent-style\', get_stylesheet_uri() );   //It will call your style.css file
    wp_enqueue_style( \'style1\', get_stylesheeet_directory_uri() . \'/rtl.css\' );
    wp_enqueue_style( \'style2\', get_stylesheeet_directory_uri() . \'/assets/stylesheet/main.css\' ); 
    wp_enqueue_style( \'style3\', get_stylesheeet_directory_uri() . \'/assets/stylesheet/bootstrap.css\' ); 
}
在上述代码中parent-style, style1,style2,style1 是用户分配的名称,该名称必须唯一。在一行中只调用一个文件,所以如果要调用4个文件,则必须指定不同行中所有文件的路径。

Note: 如果您的文件存在于父主题中,则需要替换get_stylesheeet_directory_uri 具有get_template_directory_uri 在上述代码中。

有关更多详细信息,请阅读此article.

SO网友:cjbj

假设您的css文件已正确上载到服务器,最可能导致更改未显示的原因是浏览器缓存了这些文件。使用ctrl-F5重新加载可能会奏效。

强制浏览器重新加载所有样式表的另一种方法是在其上附加版本号。版本位于的标题中style.css. 您可以将其附加到所有样式表中,如下所示:

$theme_data = wp_get_theme();
wp_enqueue_style(\'style1\', get_template_directory_uri() . \'/style1.css\', \'\', $theme_data[\'version\'], false);
wp_enqueue_style(\'style2\', get_template_directory_uri() . \'/style2.css\', \'\', $theme_data[\'version\'], false);
... and so on ...
每次在中更改版本时style.css 浏览器会认为所有样式表都有新版本并重新加载它们

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();