web-dev-qa-db-ja.com

Wordpressページに異なるスタイルシートをロードしますか?

私のWordpressページにリンクされているスタイルシートがヘッダセクションにあります。

<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" />

今、私はいくつかのページまたはサブページに異なるスタイルシートをロードしたいです。

これを達成するための最善/正しい方法は何ですか?

私は自分自身の "wp_enqueue_style"を呼び出すショートコードを書くことを考えています、それは良い考えですか?

1
Wordpressor

wp_enqueue_style()にショートコードを使用しないでください。ショートコードが解析されるまでには、関連するすべてのフック(wp_headwp_print_styles)が既に起動されているため、これはうまくいきません。

is_page( $id )に基づいてさまざまなスタイルシートをエンキューするには、functions.phpで関数を作成します($idはID、スラッグ、またはタイトルにできます)。それからその関数をwp_enqueue_scriptsにフックします。

pSまた、注意してください:あなたはあなたのデフォルトスタイルシートのリンクでget_stylesheet_uri()を使うべきです。例えば:

<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_uri(); ?>/style.css" />
2
Chip Bennett

私はあなただけのスタイルのhrefの場所かそこらを変更したい、あなたはこのフィルタを使用することができます、例えば:

add_filter( 'style_loader_src', function($href){
if(strpos($href, "name-of-allowed.css") !== false) {
return $href;
}
return false;
});
0
PayteR