回答編集履歴

1

2017/10/19 08:56

投稿

退会済みユーザー
test CHANGED
@@ -5,3 +5,85 @@
5
5
  条件分岐タグ
6
6
 
7
7
  [https://wpdocs.osdn.jp/%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%BF%E3%82%B0](https://wpdocs.osdn.jp/%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%BF%E3%82%B0)
8
+
9
+
10
+
11
+
12
+
13
+ ちょっと簡潔過ぎというか足りなさ過ぎたので…
14
+
15
+
16
+
17
+ 任意のページにだけ任意のCSSを適用させるには
18
+
19
+
20
+
21
+ 関数リファレンス/wp enqueue style
22
+
23
+ [https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_enqueue_style](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_enqueue_style)
24
+
25
+
26
+
27
+ 対象が固定ページならis_page()、普通の投稿ならis_single()などにします。
28
+
29
+ 詳しくは条件分岐タグのページを。
30
+
31
+
32
+
33
+ 以下は固定ページの場合の例。テーマのfunctions.phpに追記します。
34
+
35
+
36
+
37
+ ```
38
+
39
+ function theme_name_scripts() {
40
+
41
+ wp_register_style( 'style-name', get_template_directory_uri().'/css/style-name.css' );
42
+
43
+ if ( is_page( '固定ページのIDやスラッグを指定' ) ) {
44
+
45
+ wp_enqueue_style( 'style-name' );
46
+
47
+ }
48
+
49
+ }
50
+
51
+ add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
52
+
53
+ ```
54
+
55
+
56
+
57
+ ただ、サイトはレスポンシブデザインだと思うので、PCには要らなくてもフローティングメニューのCSSをそのページを開くと勝手に読み込みこんでしまいます。
58
+
59
+ それが別に気にならなければ良いですが、気になる場合は任意のユーザーエージェントだけCSSを読み込むようにすれば無駄が減ります。
60
+
61
+
62
+
63
+ 例えばこんな風に対象のユーザーエージェントを指定してfunctions.phpに書いておき
64
+
65
+ ```
66
+
67
+ function is_mobile(){
68
+
69
+ $useragent = array(
70
+
71
+ 'Android',
72
+
73
+ 'iPhone',
74
+
75
+ 'iPod',
76
+
77
+ );
78
+
79
+ $pattern = '/'.implode( '|', $useragent ).'/i';
80
+
81
+ return preg_match( $pattern, $_SERVER['HTTP_USER_AGENT'] );
82
+
83
+ ```
84
+
85
+
86
+
87
+ ```is_page( '固定ページのIDやスラッグを指定' ) && is_mobile()```
88
+
89
+ のようにしておけば任意の固定ページで任意のユーザーエージェントの場合にしかCSSをロードしません。