web-dev-qa-db-ja.com

wPエンキュースタイルとスタイルシートの深さ

<head>タグの末尾にスタイルシートを追加するにはどうすればよいですか。そのため、以前に追加した他のスタイルをオーバーライドする必要がある場合は、オーバーライドされます。

Wp_enqueue_styleについて何か聞いたことがありますが、depthパラメータがあるようです。それは私が必要なものですか?私のスタイルシートを<head>タグの最後にするには?

もしそうなら、私はパラメータdepthに何を入れるべきですか?

ありがとう。

1
Marcelo Noronha

Wp_enqueue_scriptsアクションに優先順位番号を追加することができます。そのため、スタイルシートのエンキューにフックされているアクションに999の優先順位を付けることができます。

function high_priority_style() {
  Wp_enqueue_style('important', get_template_directory_uri() . '/css/important.css');
}
add_action('wp_enqueue_scripts', 'high_priority_style', '999');

もっと簡単な方法は、同じ関数内でstyle.cssを含むすべてのスタイルシートをwp_enqueue_scriptsにフックしてエンキューすることです。これらは、次のように関数に表示される順序で追加されます。

  function styles() {
  wp_enqueue_style('low-priority', get_template_directory_uri() . '/css/low-priority.css');
  wp_enqueue_style('theme', get_template_directory_uri() . '/style.css');
  wp_enqueue_style('important', get_template_directory_uri() . '/css/important.css');
}
add_action('wp_enqueue_scripts', 'styles');

この例では、優先順位の低いスタイルシートを含めました。これは、フレームワークまたはグリッドシステムのCSSのようなものです。

この方法でスタイルを追加する場合は、header.php内のスタイルシートへのハードコードされたリンクを必ず削除してください。

2
JPollock

ソースから、読みやすくするために再フォーマットされました。

function wp_enqueue_style( 
    $handle, // unique name 
    $src = false, // URL
    $deps = array(), // array of dependencies, other styleheets unique names.
    $ver = false, // version
    $media = 'all' // media
)

そのため、$depsは固有のスタイルシートハンドルの配列です。あなたがここであなたが待ちたいスタイルシートをリストアップするならば、WordPressはあなたのために自動的に正しい順序を作成します。

例:

$template_dir_uri = get_template_directory_uri();
wp_register_style( 'style_1', "$template_dir_uri/style1.css" );
wp_register_style( 'style_2', "$template_dir_uri/style2.css" );
wp_register_style( 'style_3', "$template_dir_uri/style3.css", array ( 'style_1', 'style_2' )  );
wp_register_style( 'style_4', "$template_dir_uri/style4.css", array ( 'style_3', 'default_theme_css_handle' ) );

wp_enqueue_style( 'style_4' );

これで、スタイルシートの<link>要素は正しい順序で印刷されます1、2、3、4

3
fuxia