Đang tải style.css của chủ đề con sau khi cha mẹ


7

Tôi đang cố tải chủ đề con của mình style.csssau khi chủ đề gốc style.cssđã được tải. Tuy nhiên, tôi đã nhận thấy rằng style.csskhông cần phải bị mê hoặc vì nó hoàn toàn bị mê hoặc bởi lõi WordPress.

Vì vậy, tôi rõ ràng mê hoặc nó như thế này, nơi nó phụ thuộc vào parent-styleviệc đã được tải:

function enqueue_theme_styles() {
  wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
  wp_enqueue_style( 'child-style', get_stylesheet_directory_uri(). '/style.css', array('parent-style') );
}
add_action( 'wp_enqueue_scripts', 'enqueue_theme_styles', PHP_INT_MAX );

Vấn đề với điều này là giờ nó đã được tải hai lần . Một khi ngầm và sau đó rõ ràng. Làm thế nào tôi có thể tải con tôi style.csssau khi cha mẹ mà không tải nó hai lần?

Đây là những gì headtrông giống như:

<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php bloginfo('name'); ?> | <?php is_front_page() ? bloginfo('description') : wp_title(''); ?></title>
    <?php if(isset($themeum['favicon'])){ ?>
        <link rel="shortcut icon" href="<?php echo $themeum['favicon']; ?>" type="image/x-icon"/>
    <?php }else{ ?>
        <link rel="shortcut icon" href="<?php echo get_template_directory_uri().'/images/plus.png' ?>" type="image/x-icon"/>
    <?php } ?>
    <link rel="stylesheet" type="text/css" href="">

    <link rel="profile" href="http://gmpg.org/xfn/11">
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
    <!--[if lt IE 9]>
    <script src="<?php echo get_template_directory_uri(); ?>/js/html5.js"></script>
    <![endif]-->
    <?php if(isset($themeum['before_head'])) echo $themeum['before_head'];?>
    <?php wp_head(); ?>
</head>

WordPress không tải style.css nên tôi nghĩ chủ đề chính là. Bạn có thể dán tiêu đề.php của bạn hình thành chủ đề của bạn? Và từ hàm.php trong cha, có mã nào nối một biểu định kiểu trong không?
Andy Macaulay-Brook

Mà một trong những phong cách được tải hai lần?
Max Yudin

@MaxYudin, ý anh là chủ đề con style.css.
bravokeyl

@bravokeyl hmm. Bây giờ tôi đọc lại câu hỏi nghe có vẻ đúng. Có thể chủ đề gốc tham chiếu thư mục biểu định kiểu chứ không phải thư mục mẫu. Khó giúp mà không thấy.
Andy Macaulay-Brook

@ AndyMacaulay-Brook, bạn hoàn toàn chính xác. Tôi đoán chủ đề phụ huynh có thể đang tải nó (ví dụ: Genesisdoes)
bravokeyl

Câu trả lời:


9

Như @Andy Macaulay-Brook đã chỉ ra rằng WordPress không tải child-theme's style.css. Tôi đoán chủ đề phụ huynh có thể được xếp hàng.

  • Bỏ hàng đợi chủ đề con style.css trước rồi mới đăng ký
  • En-queue cha mẹ style.css trước style.css của theme

Bỏ hàng đợi chủ đề con style.css

Bạn có thể hủy xếp hàng style.css của chủ đề con bằng cách sử dụng tay cầm. Bạn có thể tìm ra tay cầm bằng cách nhìn vào chủ đề gốc (giả sử nó được tải từ nó) hoặc bằng cách nhìn vào liên kết của nguồn trang.

Ví dụ:

Liên kết từ trang web sử dụng Twenty Fifteen themetrông như thế này

<link rel='stylesheet' id='twentyfifteen-style-css'  href='http://wp.dev/wp-content/themes/twentyfifteen/style.css?ver=4.5.3-alpha-37528' type='text/css' media='all' />

Đối với tay cầm twentyfifteen-stylenào là id của thẻ liên kết nhưng không có -css.

Vì vậy, chúng ta có thể hủy hàng đợi này bằng cách sử dụng wp_dequeue_stylehookwp_enqueue_scripts

wp_dequeue_style('twentyfifteen-style');

En-queue cha mẹ style.css trước style.css của chủ đề con (phụ thuộc vào danh sách các phụ thuộc)

Bằng cách thay đổi mức độ ưu tiên của wp_enqueue_scriptshook ít hơn mặc định (10) và tải chủ đề gốc style.css. (Tôi không chắc chắn về điều này phải kiểm tra)

function wpse_227769_enqueue_scripts() {
   //Load parent theme style.css here
}
add_action( 'wp_enqueue_scripts', 'wpse_227769_enqueue_scripts', 9 );

Mát mẻ. Tôi đã không nhận thấy tay cầm được sử dụng như một ID. Tiện dụng.
Andy Macaulay-Brook

Điều đó rất hữu ích! Nên làm vậy. :) Cảm ơn!
shmuli

Tôi nghĩ rằng các ưu tiên trên móc này bị ghi đè bởi các mảng phụ thuộc. An toàn hơn để liệt kê các phụ thuộc để có được thứ tự mà bạn muốn.
Andy Macaulay-Brook

@ AndyMacaulay-Brook, vâng, hiểu rồi, có một chút nghi ngờ về điều này trước khi chỉ cần kiểm tra functions.wp-styles.phpclass-wp-dependencieslớp học.
bravokeyl

Tôi thấy rằng nó đã được tải trong hàm.php của cha mẹ bởi `wp_enqueue_style ('thm-style', get_stylesheet_uri ());`.
shmuli
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.