it-roy-ru.com

Понимание wp_add_inline_style

Я пытаюсь разобраться с функцией wp_add_inline_style () в WordPress.

//setting inline css.
function my_styles_method() {
    wp_enqueue_style(
        'custom-style',
        get_template_directory_uri() . '/css/custom_script.css'
    );
        $color = get_theme_mod( 'my-custom-color' ); //E.g. #FF0000
        $custom_css = "
                .mycolor{
                        background: {$color};
                }";
        wp_add_inline_style( 'custom-style', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'my_styles_method' );

Я понимаю большинство из них, но я не понимаю этого:

wp_enqueue_style(
   'custom-style',
    get_template_directory_uri() . '/css/custom_script.css'
);

Это зависимость? или пустой файл CSS, чтобы код был записан в него?

Если это зависит, то почему? Я просто хочу загрузить пользовательский CSS в тему, чтобы он мог быть более настраиваемым.

Спасибо

6
Robert

wp_add_inline_style() предназначена для добавления дополнительного CSS в таблицу стилей существующий. Идея заключается в том, что вам может потребоваться динамическое изменение таблицы стилей - например, у вас есть выбранные пользователем цвета, связанные с категориями, и вы хотите соответствующим образом раскрасить заголовок каждой категории. Вы не можете жестко закодировать это, так как рассматриваемые цвета не известны, но живут в базе данных.

Так

wp_enqueue_style(
   'custom-style',
    get_template_directory_uri() . '/css/custom_script.css'
);

просто ставит в очередь существующую таблицу стилей, к которой мы присоединяем наш динамически генерируемый CSS.

Кажется, что вы пытаетесь сделать, это загрузить введенный пользователем CSS. Я бы не стал этого рекомендовать - предлагая твики через настройщик, это хороший способ позволить пользователям персонализировать тему, но если им нужно внести существенные изменения, то на самом деле им нужна child theme .

Однако, если вы хотите сделать это, я бы использовал wp_enqueue_style(), чтобы загрузить style.css темы, а затем приложить к ней настройки. (Большинство тем обычно жестко кодируют style.css в <head>, но я не знаю, как это сделать).


Разработчики: Вы должны знать об этом билете trac: http://core.trac.wordpress.org/ticket/24813

6
Stephen Harris