简体   繁体   中英

enqueing stylesheets for a child theme in wordpress

I have created a child theme in wordpress off of a parent theme called bigpont. I am also using woocommerce as well on the site. I had enqued my child theme style sheet and have noticed it loads twice and I'm not sure why. I am also wondering how I can get it to load so it overrides the woocommerce style sheet. Here is the code I'm currently using in my functions.php file:

function my_theme_enqueue_styles() {

$parent_style = 'bigpoint-css'; 

wp_enqueue_style( $parent_style, get_template_directory_uri() . '/base.css' );
wp_enqueue_style( 'child-style',
  get_stylesheet_directory_uri() . '/style.css',
  array( $parent_style ),
  wp_get_theme()->get('Version')
  );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles');

and here is how the stylesheets are being loaded on my site 在此处输入图片说明 It seems to load as 'bigpoint-default-css' and then again as I added it "child-style-css'

****UPDATE: I found the answer to my css being loaded twice, in my parent theme's functions.php file it being called in with :

wp_register_style('bigpoint-default', get_stylesheet_uri(), '1.0');

so I used this to undo that:

  function unhook_parent_style() {

  wp_dequeue_style( 'bigpoint-default' );
  wp_deregister_style( 'bigpoint-default' );

  }
  add_action( 'wp_enqueue_scripts', 'unhook_parent_style', 20 );

From looking at the file class-wc-frontend-scripts.php it looks like WooCommerce enqueues it scripts/styles with the default priority of 10.

public static function init() {
        add_action( 'wp_enqueue_scripts', array( __CLASS__, 'load_scripts' ) );
        add_action( 'wp_print_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
        add_action( 'wp_print_footer_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
    }

So if you enqueue your scripts with a lower priority they it will load after the WooCommerce style and overwrite that stylesheet as the file will be loaded after the WooCommerce one lower down the HTML document.

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 100 );

I would need more information to debug what is happening with the duplicate stylesheets though.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM