2017-02-15 79 views
0

我正在研究兒童主題,即使WordPress在編輯界面中顯示文件,但並不是覆蓋父主題中的文件。我在這裏看過幾個答案,但他們都沒有工作。功能文件中的當前代碼是WordPress子主題不覆蓋其他文件

<?php 
require_once(get_stylesheet_directory_uri() . '/lib/custom.lib.php'); 
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles'); 
function my_theme_enqueue_styles() { 
    wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css'); 

} 
?> 

<?php 
function my_theme_enqueue_styles() { 

    $parent_style = 'parent-style'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme. 

    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), 
     wp_get_theme()->get('Version') 
    ); 
    wp_enqueue_script('custom.js', get_stylesheet_directory_uri() . '/js/custom.js', array('jquery'), 1.0, true); 
} 
add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles'); 
?> 

我已經嘗試了很多不同的變體,並且他們中的一個人沒有工作過。有人有想法嗎?

回答

0

wp_enqueue_style根據codex,意在「如果提供源(不覆蓋)和排隊」,則註冊樣式。從你的問題中,你特別試圖用這個函數來覆蓋它,這明顯不是它所做的。

一個選項是查看您的文件導入的順序,並確保它在較早的時候加載。這並不總是可能的,這取決於你對主題有多少控制。

另一個可以在所有情況下工作的選項是覆蓋。爲了強制覆蓋,您必須先將腳本/樣式出列。此外,請務必遵循風格指南,尤其是在尋求幫助時,因爲這會讓其他人更容易看到您想要做的事情。這裏是你的代碼,清理並添加了出隊:

<?php 
require_once get_stylesheet_directory_uri() . '/lib/custom.lib.php'; 

add_action('wp_enqueue_scripts', function() { 
    // This is 'twentyfifteen-style' for the Twenty Fifteen theme. 
    $parent_style = 'parent-style'; 

    // Dequeue the parent 
    wp_dequeue_style($parent_style); 

    // Queue up our custom style 
    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), 
     wp_get_theme()->get('Version') 
    ); 
    wp_enqueue_script(
     'custom.js', 
     get_stylesheet_directory_uri() . '/js/custom.js', 
     array('jquery'), 
     1.0, 
     true 
    ); 
}); 

另一件要考慮的事情是,如果你甚至想要重寫。如果你完全改變風格,也許這是一個不同的主題。如果您沒有完全改變風格,那麼您可能只想包含原始CSS,並且還包括CSS以及您的風格變化。

+0

主要問題是我需要custom.lib.php來優先考慮,並且我所看到的所有答案都顯示要執行require_once並且可以工作,但它並沒有做我需要做的事情。它仍然保持父主題custom.lib.php爲更高的優先級。 – saxon564