【WordPress】「krc-cast-manager」で作るキャスト詳細画面のスケジュール表をレスポンシブにしてみた
おはようございます。
久々の krc-cast-manager プラグインネタ。
krc-cast-manager公式で紹介されているキャスト詳細画面に表示するスケジュール表が、
スマホ表示した際に狭まってレイアウト調整が難しかったので、スマホ表示に最適化してみました。
krc-cast-manager については次の記事を見てみてください。
【Wordpress】Lightningテーマで在籍キャスト管理プラグイン「krc-cast-manager」を使ってみる
スポンサーリンク
対応前後
元々のサンプルは dl dd dt 要素で構成されたスケジュール表で、スマホ表示した際に次のような表示になってしまいます。
なんとか、5日分くらいなら表示ができますが、これ以上表示するとスケジュールも折り返してちょっと見にくくなってしまうため(上図もヘッダ―折り返してますが・・)、テーブルに変更してCSSで行列を入れ替えるという表示にしてみました。
プログラム
php
function.php
/** * 個人ページに表示するスケジュール * */ function singlecalendar_table($id) { $week = array( "日", "月", "火", "水", "木", "金", "土" ); $today = strtotime(date("Y-m-d", strtotime("+3 hour"))); echo '<div class="krc_calendar clearfix">'; $table = '<table class="sch-box">'; $thead = '<thead><tr>'; $tbody = '<tbody><tr>'; for ($i = 0;$i <= 6;$i++) { $yy = date('w', strtotime('+' . $i . ' day')); $y = date('D', strtotime('+' . $i . ' day', $today)); if (date('Y-m-d', strtotime('+' . $i . ' day', $today)) == $day) $y = 'target'; $thead .= '<th>' . strtoupper(date('n/j(' . $week[$yy] . ')', strtotime('+' . $i . ' day', $today))) . '</th>'; if ($casttime = today_schedule($id, date('Y-m-d', strtotime('+' . $i . ' day', $today)))) { $tbody .= '<td>'; if ($casttime['starttime'] !== '0' and $casttime['endtime'] !== '0') { if ($casttime['starttime'] !== '0') { $tbody .= esc_html($casttime['starttime']); } $tbody .= ' ~ '; if ($casttime['endtime'] !== '0') { $tbody .= esc_html($casttime['endtime']); } } else { $tbody .= 'お問合せ下さい'; } $tbody .= '</td>'; } else { $tbody .= '<td>-</td>'; } } $thead .= '</tr></thead>'; $tbody .= '</tr></tbody>'; $table .= $thead . $tbody . '</table>'; echo $table . '</div>'; }
スケジュール表を出力する関数をコピーし、テーブルを出力するように修正。
content-cast.php(抜粋)
<div class="cast-schedule"> <h2 class="sub-section">スケジュール</h2> <?php singlecalendar_table(get_the_ID());?> <div class="wp-block-button is-style-fill"> <a href="/schedule" class="wp-block-button__link has-white-color has-text-color has-background">出勤情報はこちら</a> </div> </div>
スケジュール表呼び出しを追加した関数に変更。
css
テーブル用に新しくルールを追加
@media screen and (max-width:480px) { /** * キャスト詳細のスケジュールテーブル * 行列を入れ替える */ .sch-box { width: 100%; } .sch-box tr { display: block; float: left; } .sch-box tr td, .sch-box tr th { border-left: none; display: block; height: 50px; } .sch-box thead { display: block; float: left; width: 30%; } .sch-box thead tr { width: 100%; } .sch-box tbody { display: block; float: left; width: 70%; } .sch-box tbody tr { width: 100%; } .sch-box tr td + td { border-left: none; } .sch-box tbody td:last-child { border-bottom: solid 1px #ccc; } }
スマホサイズの時に行列を入れ替えるようにする。
まとめ
他にもいい方法はあるかもしれませんが、ひとまずこれでPC、スマホのどちらでもいい感じに表示することができました。
何かのお役に立てれば。
ではでは。
ディスカッション
コメント一覧
サイト拝見して勉強させていただいております。
一つ質問させていただきたいのですが、キャストマネジャーのプラグイン導入してのサイト設営を
記載されていたものをコピーさせて頂き行ってみたのですが、
キャスト一覧と、そこからの個別ページ、スケジュールページの表示ができなくて
どうして良いのかわからず連絡させて頂きました。
エラーでFatal error: Uncaught Error: Call to undefined function lightning_get_page_for_posts() in /〜〜/archive-cast.php on line 69
となってしまい、関数の定義をどこで行えば良いのかわからず混乱しております。
年始早々で大変恐縮なのですが、ご教授いただけたら幸いです。
ぜひよろしくお願い致します。
西山様
ブログを読んでいただきありがとうございます。
ご質問の件、メールにてご回答差し上げましたのでご確認ください。