テーマのスタイルシートをエンキューすることはどれほど重要ですか?


19

私はこれに対する答えを探してネットを探しましたが、何らかの理由で実際の例しか見つけることができませんが、その特定の説明はありません。<link rel=stylesheet>header.phpで使用するだけでなく、テーマを開発するときにスタイルをエンキューすることが重要である理由を誰かに説明してもらえますか?

また、テーマのデフォルトのスタイルシートについてはどうですか、それもキューに入れる必要がありますか?


テーマのレビュー要件によって奨励されています。 codex.wordpress.org/... 、必要に応じてあなただけのリンクのrel =ヘッダー内のメインのスタイルシートができますが
helgatheviking

1
デフォルトのスタイルシート(つまり、テーマのディレクトリのルートにあるstyle.css)は自動的にロードされるため、キューに入れる必要はありません。テーマのすべてのCSSがそのスタイルシートに含まれている場合(またはそのスタイルシートで「インポート」ルールを使用してCSSをロードする場合)、追加のエンキューは不要です。ただし、子テーマ内の柔軟性を高めるために、@ kaiserが示すように、子テーマで省略できる追加のCSSを条件付きでキューに入れることが有利な場合があります。
トム・オージェ

回答:


17

スタイルシートをキューに登録することは重要です。これにより、子テーマのキューからの取り出しの柔軟性が得られるだけでなく、依存関係やその他多数の項目についてリストできるようになります。それは一般に、あなたとあなたのコードと対話する他の開発者の両方にとって、より大きな柔軟性を可能にします。

テーマでデフォルトのスタイルシートを使用することは必須ではないことに注意することも重要です。スタイルシートはPRESENTでなければなりませんが、テーマに名前を付けたり、バージョンを設定したりするためだけに使用する場合、メインリポジトリのテーマを承認する人々と同様に、wordpressはそれで問題ありません。


17

@ m0r7if3rによる他の回答への追加として:

current_theme_supports()テーマのサポートがある場合にのみ、親テーマのスタイルシートをロードするために使用できます。

function add_supported_stylesheets()
{
    if ( current_theme_supports( 'parent-stylesheet' ) )
        wp_enqueue_style( 'main', get_stylesheet_directory_uri().'/style.css', array(), filemtime( get_stylesheet_directory().'/style.css' );
}

// In your parent themes bootstrap in the functions.php file
// Add the theme support:
add_theme_support( 'parent-stylesheet' );
// Then add the stylesheet:
add_action( 'after_setup_theme', 'add_supported_stylesheets', 20 );

この関数はfilemtimeversion-nrを追加することに注意してください。ファイルの内容が変更された場合にブラウザのキャッシュを防ぐため。

これにより、ユーザーは単純な単一のfn呼び出しで、子テーマのブートストラップでスタイルシートを無効にできます。

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );

3

エンキューのもう1つの理由は、プラグインがスタイルを処理できるようにすることです。たとえば、Better WordPress MinifyはCSSファイルを自動的に連結し、WP-LESSはLESSファイルをコンパイルしてその場でキャッシュします。これらは両方とも、スタイルキューにフックし、そこに並んでいるファイルを処理することによってこれを行います。

特定のスタイルをこのようなものから除外する必要がある特定の理由があるかもしれませんが、一般に、そのような便利な機能でスタイルを利用可能にすることは良いことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.