1

У меня есть следующая ситуация с загрузкой CSS.Как правильно добавить 2 CSS-файла в тему WordPress?

У меня есть тема 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; 
} 

Хорошо, так что я думаю, что мне нужно, чтобы загрузить style.css файл, используя style2.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

Andrea

+1

Почему просто не открыть файл установки CSS и сделать @import в котором все другие файлы CSS импортируются. Обычно есть один файл, в который импортируются все другие файлы CSS. – Cam

+0

Вы имеете в виду, что в моем общем файле style.css мне нужно импортировать пользовательский стиль2.css? – AndreaNobili

+1

Вы можете сделать это таким образом и сэкономить массу времени. – Cam

ответ

3

Вот синтаксис для загрузки style2.css только после загрузки файла style.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 Codex ссылка: 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

Хорошо, это работает, но мне кажется, что это не так чисто, потому что вы не используете массив dipendencies, предоставляемый функцией wp_enqueue_style() – AndreaNobili

Смежные вопросы