質問するログイン新規登録

回答編集履歴

1

2017/10/19 08:56

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,45 @@
1
1
  フローティングメニューのCSSを単独のCSSファイルにして条件分岐タグ```is_○○```を使ってページ毎に読み込むようにすれば良いです。
2
2
 
3
3
  条件分岐タグ
4
- [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)
4
+ [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)
5
+
6
+
7
+ ちょっと簡潔過ぎというか足りなさ過ぎたので…
8
+
9
+ 任意のページにだけ任意のCSSを適用させるには
10
+
11
+ 関数リファレンス/wp enqueue style
12
+ [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)
13
+
14
+ 対象が固定ページならis_page()、普通の投稿ならis_single()などにします。
15
+ 詳しくは条件分岐タグのページを。
16
+
17
+ 以下は固定ページの場合の例。テーマのfunctions.phpに追記します。
18
+
19
+ ```
20
+ function theme_name_scripts() {
21
+ wp_register_style( 'style-name', get_template_directory_uri().'/css/style-name.css' );
22
+ if ( is_page( '固定ページのIDやスラッグを指定' ) ) {
23
+ wp_enqueue_style( 'style-name' );
24
+ }
25
+ }
26
+ add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
27
+ ```
28
+
29
+ ただ、サイトはレスポンシブデザインだと思うので、PCには要らなくてもフローティングメニューのCSSをそのページを開くと勝手に読み込みこんでしまいます。
30
+ それが別に気にならなければ良いですが、気になる場合は任意のユーザーエージェントだけCSSを読み込むようにすれば無駄が減ります。
31
+
32
+ 例えばこんな風に対象のユーザーエージェントを指定してfunctions.phpに書いておき
33
+ ```
34
+ function is_mobile(){
35
+ $useragent = array(
36
+ 'Android',
37
+ 'iPhone',
38
+ 'iPod',
39
+ );
40
+ $pattern = '/'.implode( '|', $useragent ).'/i';
41
+ return preg_match( $pattern, $_SERVER['HTTP_USER_AGENT'] );
42
+ ```
43
+
44
+ ```is_page( '固定ページのIDやスラッグを指定' ) && is_mobile()```
45
+ のようにしておけば任意の固定ページで任意のユーザーエージェントの場合にしかCSSをロードしません。