在wordpress中为儿童主题添加样式表

时间:2017-10-11 13:19:54

标签: php wordpress function stylesheet

我在wordpress中创建了一个名为bigpont的父主题的子主题。我也在网站上使用woocommerce。我已经完成了我的孩子主题样式表,并注意到它加载了两次,我不知道为什么。我也想知道如何加载它,所以它覆盖了woocommerce样式表。这是我目前在functions.php文件中使用的代码:

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');

以下是我的网站上如何加载样式表 enter image description here 它似乎加载为'bigpoint-default-css',然后再添加“child-style-css”

****更新:我发现我的css的答案被加载两次,在我的父主题的functions.php文件中被调用:

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

所以我用它来解除这个:

  function unhook_parent_style() {

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

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

1 个答案:

答案 0 :(得分:1)

通过查看文件class-wc-frontend-scripts.php,看起来WooCommerce将其默认优先级为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 );
    }

因此,如果您将脚本排入较低优先级,它们将在WooCommerce样式之后加载并覆盖该样式表,因为文件将在HTML文档下方的WooCommerce之后加载。

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

我需要更多信息来调试重复样式表所发生的事情。