将用于Wordpress子主题的site-banner.css排队以覆盖父主题

时间:2018-01-18 21:43:35

标签: php css wordpress

我在子主题中对site-banner.css进行了更改。我想将文件排入队列以覆盖父主题。

我尝试将其包含在functions.php文件中,但我无法看到刷新后的更改:

function enqueue_child_theme_style() {
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'site-banner.css' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_style', 10 );

值得一提的是,style.css的functions.php文件中已经有一个enqueue。我是否需要为该功能添加更多细节?还尝试更改文件位置并在uri()中重新放置它。

3 个答案:

答案 0 :(得分:1)

你能试试吗?

function enqueue_child_theme_style() {
   wp_dequeue_style( 'child-style' );
   wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'site-banner.css' );
}

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_style', 10 );

答案 1 :(得分:1)

首先,你在这一行中错过了斜杠(/):

wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'site-banner.css' );

如果您的文件直接进入您的子主题目录,那么您的代码将是:

function enqueue_child_theme_style() {
   wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'/site-banner.css' );
}

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_style', 99);

另外,请确保您的处理程序child-style不重复。如果是这样,你想要覆盖它(不建议保持不变。最好有一些其他的处理程序名称)。这一行wp_dequeue_style( 'some-style' );用于阻止带有处理程序some-style的样式表加载到您的页面中。然后你的代码将是:

function enqueue_child_theme_style() {
   wp_dequeue_style( 'some-style' ); //you can delete this line, if you want to keep the stylesheet in pages. Second line will load below of this stylesheet and will override css rules
   wp_enqueue_style( 'child-style', get_stylesheet_directory_uri().'/site-banner.css' );
}

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_style', 99);

在这一行add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_style', 99); 99中,我们添加了更高的priority,然后在wordpress中默认为(10)。这将在以后加载样式表,然后加载其他优先级较低的样式表。

修改

使用此功能从父主题中删除site-banner.css,并调用您自己的site-banner1.css样式表:

function enqueue_child_theme_style() {
   wp_dequeue_style( 'site-banner' );
   wp_enqueue_style( 'child-banner', get_stylesheet_directory_uri().'/site-banner.css' );
}

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_style', 99);

答案 2 :(得分:0)

我设法通过使用wp_deregister_style解决问题:

add_action( 'wp_enqueue_scripts', 'load_alta_styles', 200 );

function load_alta_styles() {

wp_dequeue_style( 'tesseract-site-banner' );
wp_deregister_style( 'tesseract-site-banner' );



wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/site-banner1.css' );



}

感谢您的所有输入。