Simplicityの特徴 › フォーラム › Simplicity2に関する話題何でも › スマホとPCのエントリーのデザインを分けたい
-
投稿者投稿
-
-
2016年10月19日 12:30 AM #46385
パズル
ゲストどうも、こんにちは。Simplicityにお世話になっているものです。
早速ですが、エントリーのデザインをPCの時だけサムネイル大、スマホの時だけデフォルト、と使い分けることはできますでしょうか?
できればやり方まで教えていただけないでしょうか。
よろしくお願いします。 -
2016年10月19日 2:26 AM #46386
hidekichi
ゲストテンプレートやらを読み込む方法はわいひらさんとかがまた答えてくれるだろうと思いますが、jQueryでやる方法としては以下のサンプルのような感じです。
サンプル: PCとモバイルで表示を変える | codepen
※モバイルの方は完全に再現してません。PCのエントリーのスタイルをそのまま持っていってるのでさてどうなることかは不明です。
※ cssはscssで書いてますのでcss欄の下向き三角からview compiledでcssに変換したものをご利用くださいどういうことをしているかといいますと、カスタマイザーの設定は、デフォルトのリストです。なのでおそらくはモバイル時には勝手にモバイルの表示になるだろうと思うんですが、どうなるかは試してないのでわかりません。
デフォルトのリストをPCの時にはサムネイル大の時のcssに部分的に変換しておいて、モバイルの時にはbodyタグに.mobileと言うクラスを入れ、.mobileの子要素に対してスタイルを行っています。
つまり、仮のcssですが、本来であれば、
#list .entry { border: 1px solid red; }このようにスタイルされる所を、モバイル時にはbodyタグに.mobileと入るので、
.mobile #list .entry { border: 1px solid blue; }このようにすることでPCの時はリストの各エントリーに赤のボーダー、モバイルの時は青のボーダーが入るようにできると言うことです。
bodyタグにmobileと言うクラスが入るので、モバイルで表示するページ内は全て、.mobile なんちゃらセレクタ { プロパティ: 値; }と言う感じでスタイルできます。また.mobileと言うクラスから始まるセレクタの指定は他にないために重複しないことから、テーマデフォルトのスタイル以外に独自のスタイルを当てることもできます。
.mobileを挿入する条件は端末のユーザーエージェントで調べているために、実機で見てみないとその違いがわからないと思います。chromeのデベロッパーツールで携帯エミュレーションがあるので、それでも確認できます。PCとスマホやらでどう見えるかを確認してみてください。
またその際に、サンプルのアドレスの/pen/の部分を/full/に変えればhtml、css、jsの欄がないページが見れますので、それでどのような挙動となるかを確認してみてください。
PCとモバイルで表示を変える(fullページビュー) | codepen切り替え自体はこれで出来るので、後はcssを適度にお好きなようにいじれば良いだけです。
-
2016年10月19日 4:27 PM #46398
わいひらキーマスターテンプレートファイルをカスタマイズする場合は、子テーマで手軽にやる方法は、ちょっとないかもしれません。
親テーマを変更するのであれば、以下の部分を
//一覧リストのスタイルが大きなサムネイル表示かどうか function is_list_style_large_thumb_cards(){ return ( get_list_style() == 'large_thumb' ); }以下のように変更すれば、いけるかもしれません。
//一覧リストのスタイルが大きなサムネイル表示かどうか function is_list_style_large_thumb_cards(){ return !is_mobile(); }あとは、テーマカスタマイザーの設定で、「一覧リストのスタイル」の設定を「サムネイル大」に変更してください。
ただし、完全に動作確認したわけではないので、カスタマイザー自己責任でお願いします。
あと、この方法だと、バージョンアップごとに修正する必要があります。 -
2016年10月20日 12:15 AM #46419
technote
ゲストtheme_mod_list_styleをフィルタするとよさそうです。
子テーマのfunctions.phpなどにコードを記述します(PHP5.3以上必須)add_filter('theme_mod_list_style', function(){ return is_mobile() ? 'cards' : 'large_thumb'; });mobileのときはエントリーカード表示(cards)、その他のときは大きなサムネイル表示(large_thumb)になります。
large_cards(大きなエントリーカード表示)
large_card_just_for_first(最初だけを大きなエントリーカード表示)
bodies(本文表示)
などに変更すれば、指定したものになります。
指定できるものはlib/customizer.phpでget_list_styleを検索すると見つかります。 -
2016年10月20日 3:13 PM #46450
わいひらキーマスターそうやってフックする方法もあるんですね!
良い方法があるのを知って僕も勉強になりました。
ありがとうございます!
-
-
投稿者投稿
- このトピックに返信するにはログインが必要です。