web-dev-qa-db-ja.com

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

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

また、テーマのデフォルトのスタイルシートはどうですか、それもキューに入れるべきですか?

19
byronyasgur

スタイルシートをエンキューすることは重要です。なぜなら、子テーマはそれをデキューする柔軟性を持つだけでなく、依存関係やその他多数のもののためにリストされることを可能にするからです。それは一般的に、あなたとあなたのコードと対話する他の開発者の両方にとって、より大きな柔軟性を可能にするだけです。

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

17
mor7ifer

@ 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 );

この関数はversion-nrにfilemtimeを追加します。ファイルの内容が変更された場合にブラウザのキャッシュを防ぐためです。

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

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

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

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

3
Steve Taylor