2014-01-20 169 views
1

加載CSS時出現以下情況。如何在WordPress主題中添加2個CSS文件?

我有一個WordPress主題,通過這個代碼的style.css設置文件加載到我的functions.php文件:

/* Function automatically executed by the hook: 
* 1) (OPTIONAL): Register a script (without load it): in this case register the CSS settings 
* 2) Load the CSS settings 

*/ 
function wpb_adding_styles() { 
    wp_register_style('my_stylesheet', get_template_directory_uri() . '/style.css'); 
    wp_enqueue_style('my_stylesheet'); 
} 

/* Hooks a function on to a specific action (an action is a PHP function that is executed at specific 
* points throughout the WordPress Core) 
* @param 'wp_enqueue_scripts': The name of the action to which 'wpb_adding_styles' is hooked (wp_enqueue_scripts 
*  is the proper hook to use when enqueuing items that are meant to appear on the front end) 
*/ 
add_action('wp_enqueue_scripts', 'wpb_adding_styles'); 

在這個的style.css文件我定義一些基本的CSS配置,例如身體設置:

body{ 
    padding:0px; 
    margin:0px; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:12px; 
} 

然後我創建一個新的style2.css個設置文件中,我將覆蓋\添加一些定義到我一般的style.css的屬性,在前面的例子下面我想補充的是,身體的背景必須是黑色的財產,類似的東西:

body { 
    ........ 
    ........ 
    ........ 
    background: #000; 
} 

好了,我想我需要使用style2.css文件作爲其依賴加載的style.css文件,閱讀文檔,在我看來,我可以做類似的東西(或可能的相反?):

function load_theme_styles() { 
    wp_enqueue_style('main-css', get_template_directory_uri() . '/style.css', array(), '1.0', 'all'); 
} 
add_action('wp_enqueue_scripts', 'load_theme_styles'); 

其中陣列()不應該是空的,但它必須包含style2.css

它是一個很好的解決方案,以保持獨立的具有不一般的CSS文件進行編輯(比如一個CSS文件一個CSS框架,如BootStrap及其原始設置),並有一個自定義的CSS文件,以覆蓋我想更改的設置?

如果這是一個goog解決方案,你可以說我如何通過前一個數組我的style2.css文件?

TNX

安德烈

+1

爲什麼不乾脆打開你的CSS文件設置,並做了@import到您所有的其他CSS文件導入。通常只有一個文件將所有其他CSS文件導入到其中。 – Cam

+0

你的意思是在我的一般style.css文件中,我必須導入自定義style2.css? – AndreaNobili

+1

你可以這樣做,並節省大量的時間。 – Cam

回答

3

下面是加載style.css後加載style2.css的語法。

function wpb_adding_styles() { 
    wp_register_style('my_stylesheet1', get_template_directory_uri() . '/style.css'); 
    wp_register_style('my_stylesheet2', get_template_directory_uri() . '/style2.css', array('my_stylesheet1')); 
    wp_enqueue_style('my_stylesheet2'); 
} 

由於「my_stylesheet1」是「my_stylesheet2」的依賴,它會自動而不需要依靠自己的力量來排隊叫。

WP法典參考:http://codex.wordpress.org/Function_Reference/wp_enqueue_style

2

這應該排隊的style.css都和style2.css

function wpb_adding_styles() { 
    wp_register_style('my_stylesheet1', get_template_directory_uri() . '/style.css'); 
    wp_register_style('my_stylesheet2', get_template_directory_uri() . '/style2.css'); 
    wp_enqueue_style('my_stylesheet1'); 
    wp_enqueue_style('my_stylesheet2'); 
} 

下一個問題:你應該這樣做嗎?

爲了提高效率:不(儘管它可能實際上不會阻止您的加載時間......如果您關心效率,您將不會使用引導程序或任何通用CSS庫)。

爲簡單起見:當然。如果它能讓你組織起來,並且使未來更容易編輯,那麼爲什麼不呢。

最後,它確實是你喜歡的。在開發過程中,我可能會使用兩個樣式表。然後爲了生產,如果你覺得需要,你可以將兩個樣式表組合成一個。

+0

不以這種方式工作:我只有第一個CSS文件的樣式 – AndreaNobili

+0

我剛剛更新了我的答案。如果這不起作用,我會感到驚訝。 – Randy

+0

好的,這項工作,但它似乎不是那麼幹淨,因爲你沒有使用由wp_enqueue_style()函數提供的dipendencies數組 – AndreaNobili

相關問題