web-dev-qa-db-ja.com

Wp_add_inline_styleを理解する

私はWordPressのwp_add_inline_style()関数に頭を悩ませようとしています。

//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をexistingスタイルシートに追加することを目的としています。考えは、スタイルシートを動的に変更する必要があるかもしれないということです-例えば、ユーザーがカテゴリーに関連付けられた色を選択し、それに応じて各カテゴリーのタイトルを色付けしたい場合。問題の色は不明ですが、データベース内に存在するため、これをハードコーディングすることはできません。

そう

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

動的に生成されたCSSをアタッチする既存のスタイルシートをキューに入れるだけです。

あなたがやろうとしているのは、ユーザーが入力したCSSをロードすることです。私はこれを本当にお勧めしません-カスタマイザーを介して微調整を提供することは、ユーザーがテーマをパーソナライズできるようにする良い方法ですが、大幅な変更を行う必要がある場合、実際の目的は 子テーマ です=。

ただし、これを行う場合は、wp_enqueue_style()を使用してテーマのstyle.cssをロードし、それにカスタマイズをアタッチします。 (ほとんどのテーマはstyle.css<head>にハードコードするように設定されていますが、hwyがわかりません)。


開発者:このtracチケットに注意する必要があります: http://core.trac.wordpress.org/ticket/2481 =

6
Stephen Harris