web-dev-qa-db-ja.com

エンキューする、またはエンキューしない

WordPressでCSSファイルにリンクするための最良の方法は何ですか?

方法1:必要に応じて次のようにしてください。

<link href="<?php echo get_template_directory_uri(); ?>/my-style.css" rel="stylesheet" type="text/css" />

方法2:次のようにエンキューを使用する

add_action('wp_enqueue_scripts', 'load_my_style');

function load_my_style () {
    wp_register_style('my-style', get_template_directory_uri() . '/my-style.css');
    wp_enqueue_style('my-style');
}

ある方法が他の方法よりも優れている理由も教えてください。

ありがとう。

EDIT

そしてstyle.cssのために、私は方法1または方法2を使うべきですか?

1
Greeso

方法2

  1. スタイルシートのロード先をテンプレートの条件付きで制御しても、すべてのスタイルシートを同じ場所からエンキューすることができます。これは便利で、<head>の大量の混乱を防ぎます。
  2. たとえば、プラグインを使用する必要がある場合は、キューに入れられたスタイルシートを削除できます。
  3. エンキューされたスタイルシートは、削除したり置き換えたりできるので、子テーマにやさしいです。
  4. スタイル登録/エンキューシステムには、依存関係処理が組み込まれています。 wp_enqueue_style または wp_register_style の3番目のパラメーターを参照してください。つまり、1ダースのファイルを登録でき、依存関係を正しく割り当てれば、それらすべてを単一のwp_enqueue_style('my-style');でロードできます。
  5. 4番目のパラメータによる "バージョン"処理があります - 大したことではありませんが便利です。
  6. 5番目のパラメータによる「メディア」処理も組み込まれています。これも大したことではなく便利です。
  7. プラグインや他のコードはエンキューされたスタイルシートをテンプレートに書くことができない方法で操作することができます - 例えば(そして既に述べたように)いくつかのプラグインはスタイルシートを圧縮し結合します。 。

私は#1、#2、#4を最大の利点として数えますが、#3はあなたが親になるかもしれない公共消費のためのテーマを構築するなら非常に重要で、あなたが子供を構築しようとするなら重要です。

3
s_ha_dum

推奨は、常にスクリプトとスタイルを登録してエンキューすることです。主にファイルの重複、同じスクリプトの異なるバージョンのロードなど、多くの問題は避けられます。とにかく、テーマのheader.phpでのみ使用される独自のカスタムcssファイルを使用する場合エンキューしないことで問題が発生しますが、実行した方が安全です。

1
cybmeta

あなたは何もハードコードしたくありません。エンキューはベストプラクティスであり、さらに、いつでも好きなときにロードできます。あなたはそれを登録することができ、あなたがする必要があるまでそれをエンキューすることはできません。

登録すると、WPが特定のスタイルシートまたはスクリプトが存在することを認識し、後で使用できるようになります。

さらに、登録/エンキューサードパーティ製プラグイン/子テーマを使用することで、コアを変更せずにそれを操作する機会があります。

0
user23654