【WordPress】Lightningテーマで在籍キャスト管理プラグイン「krc-cast-manager」を使ってみる
おはようございます。
知人からメンズエステのサイト構築を依頼され、
色々と試行錯誤をして「krc-cast-manager」プラグインに辿り着いたので
構築についてかいつまんで紹介。
個人的にも色々と勉強になりました。
とりあえず、プラグインを組み込んでみたサイトはこちらです。
スポンサーリンク
krc-cast-managerプラグイン
KURUBUSI.net さんが自分用に作成、公開しているWordpressで風俗サイトを構築するためのキャスト管理プラグイン。
風俗サイト構築用で作成されていますが、風俗以外でも普通に使えるんじゃないかと思います。(要カスタマイズ)
・キャスト管理(画像、名前、身長、スタイル、グレード、タイプ、新人かどうかなどを登録できます。)
・キャスト一覧ページの出力
・キャスト詳細(プロフィール)ページの出力
・キャストのスケジュール管理、表示
・任意のランキング作成、表示
完全にすべてプラグイン化されている訳ではなく、設置しようとした場合は若干Wordpress、PHPの知識が必要となります。
それでもこれだけ便利なものを提供してくれているのはありがたいことですね。
ほかにもいくつかスケジュール管理的なプラグインを試してみましたが、今回依頼されたサイト制作には krc-cast-manager が一番合っていました。
今回構築する環境は次の通り
- wpX Speedサーバー
- Lightningテーマ(子テーマ使用)
プラグインのダウンロードから有効化まで
プラグインのダウンロード
Githubに上がっていますので、そこからダウンロード・解凍します。
ダウンロードしたファイルを解凍すると「krc-cast-manager-master」というフォルダ名で解凍されますので、
「krc-cast-manager」に名前を変更します。
事前準備(任意)
そのまま利用すると、完成後のキャストページのURLが「krc_cast」というようになってしまいます。
どうしても「krc」という文言を使いたくない場合は予めプラグイン内のファイルに記述されている文言を全て「krc_cast」→「cast」に変更してください。
(krc_rankingも同様)
一括で置換するのであれば サクラエディタなどの高機能エディタを利用するといいです。
プラグインのアップロード・有効化
WinSCPなどを利用して、解凍・リネームしたフォルダを「wp-content」>「plugin」フォルダにアップロードします。
wpXでのアップロードは次の記事を参考にしてください。
「WinSCP」をインストールしてwpXクラウドサーバーにFTP接続する方法
wpX Speedサーバーであればコントロールパネルから WEBファイルマネージャーというものも利用できますよ。
アップロードしたら、Wordpress管理画面のプラグインより有効化します。
これで WordPress管理画面に「キャストマネージャー」というメニューが追加されます。
パーマリンクの設定
各ページを作成して配置
最終的なフォルダ構成はこんな感じです。
ショートコード等の作成
全てのページを手作りするわけでなく、一部はショートコードで記事ページに挿入するタイプのものもあります。
function.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 | <?php /*-------------------------------------------*/ /* カスタム投稿タイプ「イベント情報」を追加 /*-------------------------------------------*/ // add_action( 'init', 'add_post_type_event', 0 ); // function add_post_type_event() { // register_post_type( 'event', /* カスタム投稿タイプのスラッグ */ // array( // 'labels' => array( // 'name' => 'イベント情報', // 'singular_name' => 'イベント情報' // ), // 'public' => true, // 'menu_position' =>5, // 'has_archive' => true, // 'supports' => array('title','editor','excerpt','thumbnail','author') // ) // ); // } /*-------------------------------------------*/ /* カスタム分類「イベント情報カテゴリー」を追加 /*-------------------------------------------*/ // add_action( 'init', 'add_custom_taxonomy_event', 0 ); // function add_custom_taxonomy_event() { // register_taxonomy( // 'event-cat', /* カテゴリーの識別子 */ // 'event', /* 対象の投稿タイプ */ // array( // 'hierarchical' => true, // 'update_count_callback' => '_update_post_term_count', // 'label' => 'イベントカテゴリー', // 'singular_label' => 'イベント情報カテゴリー', // 'public' => true, // 'show_ui' => true, // ) // ); // } /********* 備考1 ********** Lightningはカスタム投稿タイプを追加すると、 作成したカスタム投稿タイプのサイドバー用のウィジェットエリアが自動的に追加されます。 プラグイン VK All in One Expansion Unit のウィジェット機能が有効化してあると、 VK_カテゴリー/カスタム分類ウィジェット が使えるので、このウィジェットで、 今回作成した投稿タイプ用のカスタム分類を設定したり、 VK_アーカイブウィジェット で、今回作成したカスタム投稿タイプを指定する事もできます。 /********* 備考2 ********** カスタム投稿タイプのループ部分やサイドバーをカスタマイズしたい場合は、 下記の命名ルールでファイルを作成してアップしてください。 module_loop_★ポストタイプ名★.php */ /*-------------------------------------------*/ /* フッターのウィジェットエリアの数を増やす /*-------------------------------------------*/ // add_filter('lightning_footer_widget_area_count','lightning_footer_widget_area_count_custom'); // function lightning_footer_widget_area_count_custom($footer_widget_area_count){ // $footer_widget_area_count = 4; // ← 1~4の半角数字で設定してください。 // return $footer_widget_area_count; // } /*-------------------------------------------*/ /* <head>タグ内に自分の追加したいタグを追加する /*-------------------------------------------*/ functionadd_wp_head_custom(){?> <!--head内に書きたいコード--> <?php} // add_action( 'wp_head', 'add_wp_head_custom',1); functionadd_wp_footer_custom(){?> <!--footerに書きたいコード--> <?php} // add_action( 'wp_footer', 'add_wp_footer_custom', 1 ); /* --------------------------------------------------------------------------------- * * 追加処理 * * --------------------------------------------------------------------------------- */ //wp_enqueue_style( 'animations', get_template_directory_uri() . '/css/flexslider.css' ); //wp_enqueue_script( 'flexslider', get_template_directory_uri() . '/js/jquery.flexslider-min.js', array( 'jquery' ), null,true ); wp_enqueue_style('animations',get_bloginfo('stylesheet_directory').'/css/flexslider.css'); wp_enqueue_script('flexslider',get_bloginfo('stylesheet_directory').'/js/jquery.flexslider-min.js',array('jquery'),null,true); /** * 個人ページに表示するスケジュール * */ functionsinglecalendar($id) { $week=array( "日", "月", "火", "水", "木", "金", "土" ); $today=strtotime(date("Y-m-d",strtotime("+3 hour"))); echo'<div class="krc_calendar clearfix">'; for($i=0;$i<=4;$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'; echo'<dl><dt class="'.mb_strtolower($y).'">'.strtoupper(date('n/j('.$week[$yy].')',strtotime('+'.$i.' day',$today))).'</dt>'; if($casttime=today_schedule($id,date('Y-m-d',strtotime('+'.$i.' day',$today)))) { echo'<dd>'; if($casttime['starttime']!=='0')echoesc_html($casttime['starttime']); echo' ~ '; if($casttime['endtime']!=='0')echoesc_html($casttime['endtime']); echo'</dd></dl>'; } else { echo'<dd>-</dd></dl>'; } } echo'</div>'; } functiontoday_schedule($id,$day='') {//本日の出勤確認 $day=$day!=''?$day:date("Y-m-d",strtotime("+3 hour")); $day=htmlentities($day,ENT_QUOTES,'utf-8'); $works=outschedule($day); if($works&& $works != 'rest' && array_key_exists($id, $works)) { return $works[$id]; } else { returnfalse; } } /** * スケジュール取得 * */ functionoutschedule($day) {//DBから該当の日付のデータを取得 global$wpdb; $table_name=$wpdb->prefix.'krc_schedules'; $schedules=$wpdb->get_var($wpdb->prepare("SELECT work FROM $table_name WHERE day = %s AND status = %d",$day,0)); $works=unserialize($schedules); return$works;//配列にして返す } /** * スケジュールページショートコード */ functionschedulesHtml() { ob_start(); $day=isset($_GET["works"])?$_GET['works']:date("Y-m-d"); $works=outschedule($day); $len=6;//+1 $week=array( "日", "月", "火", "水", "木", "金", "土" ); echo'<nav class="week_calendar"><ul>'; for($i=0;$i<=$len;$i++) { $yy=date('w',strtotime('+'.$i.' day')); $y=date('D',strtotime('+'.$i.' day')); if(date('Y-m-d',strtotime('+'.$i.' day'))==$day)$y='target'; echo'<li class="'.mb_strtolower($y).'"><a href="'.home_url('/').'/schedule/?works='.date('Y-m-d',strtotime('+'.$i.' day')).'">'.strtoupper(date('n/j ('.$week[$yy].')',strtotime('+'.$i.' day'))).'</a></li>'; } echo'</ul></nav>'; $w=date('w',strtotime($day)); echo'<div class="wp-block-group__inner-container home-block">'; echo'<h2 class="sub-section">'.date('n/j',strtotime($day)); echo'('.$week[$w].')'; echo'の出勤スケジュール</h2>'; if(!$works) { //予定がない場合 echo'<br>'; } elseif($works!='rest') { //postid順に配列に入っているのでs_order順にした配列を作る $works_array=array(); foreach($worksas$id=>$val) { $works_array[$val["s_order"]]=$id; } ksort($works_array); foreach($works_arrayas$rder=>$id) { $args=array( 'post_type'=>'cast', 'post__in'=>array( $id ), ); query_posts($args); while(have_posts()): the_post(); set_query_var('work',$works[$id]); set_query_var('fncName','schedulehtml'); get_template_part('content',('castschedule')); endwhile; wp_reset_query(); } echo'</div>'; } else { //休み echo'定休日'; } returnob_get_clean(); } add_shortcode('scheduleshtml','schedulesHtml'); /** * 本日出勤ショートコード * TOPページ等に本日の出勤キャストを表示 * */ functiontodaysCastHtml($day='') { ob_start(); $time9=9-6;//6時に次の日のスケジュールに切り替わる仕様 $day=$day!=''?$day:date("Y-m-d",strtotime("+".$time9." hour")); $works=outschedule($day); addSchedules($works); returnob_get_clean(); } functionaddSchedules($works) { $schedule='schedule'; if(!$works) { //予定がない場合 echo'<br>'; } elseif($works!='rest') { $works_array=array(); foreach($worksas$id=>$val) { $works_array[$val["s_order"]]=array( 'id'=>$id, 'time'=>$val ); } ksort($works_array); foreach($works_arrayas$id=>$work) { $args=array( 'post_type'=>'cast', 'post__in'=>array( $work['id'] ), 'orderby'=>'post__in' ); query_posts($args); while(have_posts()): the_post(); set_query_var('schedule',$work['time']); set_query_var('fncName','todaysCastHtml'); //content-castlist.phpは用意しておいて下さい。 get_template_part('content','castlist'); endwhile; wp_reset_query(); } } else { //休み echo'定休日'; } } add_shortcode('todayscasthtml','todaysCastHtml',0); /** * 新人キャストショートコード * */ functionoutNewType(){ ob_start(); $args=array( 'post_type'=>'cast', 'posts_per_page'=>-1, 'tax_query'=>array( 'relation'=>'AND', array( 'taxonomy'=>'krc_new', 'field'=>'slug', 'terms'=>"新人", ) )); query_posts($args); if(have_posts()): while(have_posts()): the_post(); set_query_var('fncName','outNewType'); get_template_part('content','castlist');//content-castlist.phpは用意しておいて下さい。 endwhile; endif; wp_reset_query(); returnob_get_clean(); } add_shortcode('newcasthtml','outNewType'); /** * FTPアップしたイメージにアクセスしやすくする */ functionimagepassshort($arg){ $content=str_replace('"images/','"'.get_bloginfo('stylesheet_directory').'/images/',$arg); return$content; } add_action('the_content','imagepassshort'); |
キャスト一覧ページ
キャスト一覧用のファイルを作成します。
archive-cast.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | <?phpget_header();?> <!--ヘッダとパンくず無理やり変更--> <div class="section page-header"> <div class="container"> <div class="row"> <div class="col-md-12"> <h1 class="page-header_pageTitle">セラピスト一覧</h1> </div> </div> </div> <script> document.title=document.title.replace('キャスト管理','セラピスト一覧'); </script> </div> <div class="section breadSection"> <div class="container"> <div class="row"> <ol class="breadcrumb"itemtype="http://schema.org/BreadcrumbList"> <li id="panHome"itemprop="itemListElement"itemscope=""itemtype="http://schema.org/ListItem"> <aitemprop="item"href="https://sample.oilnoko.com/"><span itemprop="name"><iclass="fa fa-home"></i>HOME</span></a> </li> <li> <span>セラピスト一覧</span></li> </ol> </div> </div> </div> <?php // Dealing with old files. // Actually, it's ok to only use get_template_part(). /* Page Header /*-------------------------------------------*/ $old_file_name[]='module_pageTit.php'; if(locate_template($old_file_name,false,false)){ locate_template($old_file_name,true,false); }else{ //get_template_part( 'template-parts/page-header' ); } /* BreadCrumb /*-------------------------------------------*/ do_action('lightning_breadcrumb_before'); $old_file_name[]='module_panList.php'; if(locate_template($old_file_name,false,false)){ locate_template($old_file_name,true,false); }else{ //get_template_part( 'template-parts/breadcrumb' ); } do_action('lightning_breadcrumb_after'); ?> <div class="<?phplightning_the_class_name('siteContent');?>"> <?phpdo_action('lightning_siteContent_prepend');?> <div class="container"> <?phpdo_action('lightning_siteContent_container_prepend');?> <div class="row"> <div class="<?phplightning_the_class_name('mainSection');?>"id="main"role="main"> <?phpdo_action('lightning_mainSection_prepend');?> <?php /* Archive title /*-------------------------------------------*/ $archiveTitle_html=''; $page_for_posts=lightning_get_page_for_posts(); // Use post top page( Archive title wrap to div ). if($page_for_posts['post_top_use']||get_post_type()!=='post'){ if(is_year()||is_month()||is_day()||is_tag()||is_author()||is_tax()||is_category()){ $archiveTitle=get_the_archive_title(); $archiveTitle_html='<header class="archive-header"><h1>'.$archiveTitle.'</h1></header>'; } } echowp_kses_post(apply_filters('lightning_mainSection_archiveTitle',$archiveTitle_html)); /* Archive description /*-------------------------------------------*/ $archiveDescription_html=''; if(is_category()||is_tax()||is_tag()){ $archiveDescription=term_description(); $page_number=get_query_var('paged',0); if(!empty($archiveDescription)&& $page_number == 0 ) { $archiveDescription_html = '<div class="archive-meta">' . $archiveDescription . '</div>'; } } echowp_kses_post(apply_filters('lightning_mainSection_archiveDescription',$archiveDescription_html)); $postType=lightning_get_post_type(); do_action('lightning_loop_before'); ?> <div class="<?phplightning_the_class_name('postList');?>"> <?phpif(have_posts()):?> <!--セラピスト一覧--> <div class="cast-wrapper"> <div class="box-title"></div> <div class="box-body"> <?phpwhile(have_posts()):the_post();?> <?phpget_template_part('content',('castlist'));?> <?phpendwhile;?> </div> </div> <?php the_posts_pagination( array( 'mid_size'=>1, 'prev_text'=>'«', 'next_text'=>'»', 'type'=>'list', 'before_page_number'=>'<span class="meta-nav screen-reader-text">'.__('Page','lightning').' </span>', ) ); ?> <?phpelse:// hove_posts() ?> <div class="well"><p><?phpechowp_kses_post(apply_filters('lightning_no_posts_text',__('No posts.','lightning')));?></p></div> <?phpendif;// have_post() ?> </div><!--[/.postList]--> <?phpdo_action('lightning_loop_after');?> <?phpdo_action('lightning_mainSection_append');?> </div><!--[/.mainSection]--> <?phpif(lightning_is_subsection_display()){?> <div class="<?phplightning_the_class_name('sideSection');?>"> <?phpget_sidebar(get_post_type());?> </div><!--[/.subSection]--> <?php}?> <?phpdo_action('lightning_additional_section');?> </div><!--[/.row]--> <?phpdo_action('lightning_siteContent_container_apepend');?> </div><!--[/.container]--> <?phpdo_action('lightning_siteContent_apepend');?> </div><!--[/.siteContent]--> <?phpget_footer();?> |
content-castlist.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php $cast_fields=get_post_custom();//カスタムフィールドを全部取得 $cast_screens=json_decode($cast_fields['_cast_screens'][0]);//画像配列を用意 $cast_type_terms=get_the_terms($post->ID,'krc_type');//タイプタクソノミーを取得 $cast_grade_terms=get_the_terms($post->ID,'krc_grade');//グレードタクソノミーを取得 $cast_new_terms=get_the_terms($post->ID,'krc_new');//新人区分タクソノミーを取得 ?> <div class="one-cast"> <ahref="/cast/<?phpechoesc_html($cast_fields['_krc_name'][0]);?>"> <figure> <?phpif(empty($cast_screens)):?> <img src="<?phpechoget_stylesheet_directory_uri();?>/images/noimg.jpg"alt="<?phpthe_title();?>"> <?phpelse:?> <img src="<?phpecho$cast_screens[0];?>"alt="<?phpthe_title();?>"> <?phpendif;?> </figure> <figcaption> <span class="cast-name"><?phpechoesc_html($cast_fields['_krc_name'][0]);?>(<?phpechoesc_html($cast_fields['_krc_age'][0]);?>歳)</span> <span class="cast-size">T:<?phpechoesc_html($cast_fields['_krc_tall'][0]);?>B:<?phpechoesc_html($cast_fields['_krc_bust'][0]);?>(<?phpechoesc_html($cast_fields['_krc_cups'][0]);?>)W:<?phpechoesc_html($cast_fields['_krc_waist'][0]);?>H:<?phpechoesc_html($cast_fields['_krc_hips'][0]);?></span> </figcaption> </a> <?phpif($fncName!='todaysCastHtml'):?> <?phpif(today_schedule(get_the_ID())):?> <span class="todays_cast badge">本日出勤</span> <?phpendif;?> <?phpendif;?> <?phpif($fncName!='outNewType'):?> <?phpif(!empty($cast_new_terms[0]->name)):?> <span class="new_cast badge"></span> <?phpendif;?> <?phpendif;?> <?phpif(!empty($cast_fields['tw_id'][0])):?> <aclass="tw"href="https://twitter.com/<?phpechoesc_html($cast_fields['tw_id'][0]);?>"target="_blank"></a> <?phpendif;?> </div> |
archive-cast.php から content-castlist.php が呼び出されています。
キャスト(個人)ページ
キャスト一覧からキャスト画像をクリックで詳細を表示するなど、個人のページを設ける場合に作成します。
single-cast.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | <?phpget_header();?> <div class="section page-header"> <div class="container"> <div class="row"> <div class="col-md-12"> <h1 class="page-header_pageTitle">セラピスト</h1> </div> </div> </div> </div> <div class="section breadSection"> <div class="container"> <div class="row"> <ol class="breadcrumb"itemtype="http://schema.org/BreadcrumbList"> <li id="panHome"itemprop="itemListElement"itemscope=""itemtype="http://schema.org/ListItem"> <aitemprop="item"href="https://sample.oilnoko.com/"><span itemprop="name"><iclass="fa fa-home"></i>HOME</span></a> </li> <li id="panCast"itemprop="itemListElement"itemscope=""itemtype="http://schema.org/ListItem"> <aitemprop="item"href="https://sample.oilnoko.com/cast"><span itemprop="name">セラピスト一覧</span></a> </li> <li> <span>セラピスト</span></li> </ol> </div> </div> </div> <?php // Dealing with old files. // Actually, it's ok to only use get_template_part(). /* Page Header /*-------------------------------------------*/ $old_file_name[]='module_pageTit.php'; if(locate_template($old_file_name,false,false)){ locate_template($old_file_name,true,false); }else{ //get_template_part( 'template-parts/page-header' ); } /* BreadCrumb /*-------------------------------------------*/ do_action('lightning_breadcrumb_before'); $old_file_name[]='module_panList.php'; if(locate_template($old_file_name,false,false)){ locate_template($old_file_name,true,false); }else{ //get_template_part( 'template-parts/breadcrumb' ); } do_action('lightning_breadcrumb_after'); ?> <div class="<?phplightning_the_class_name('siteContent');?>"> <?phpdo_action('lightning_siteContent_prepend');?> <div class="container"> <?phpdo_action('lightning_siteContent_container_prepend');?> <div class="row"> <div class="<?phplightning_the_class_name('mainSection');?>"id="main"role="main"> <?phpdo_action('lightning_mainSection_prepend');?> <?php /* Archive title /*-------------------------------------------*/ $archiveTitle_html=''; $page_for_posts=lightning_get_page_for_posts(); // Use post top page( Archive title wrap to div ). if($page_for_posts['post_top_use']||get_post_type()!=='post'){ if(is_year()||is_month()||is_day()||is_tag()||is_author()||is_tax()||is_category()){ $archiveTitle=get_the_archive_title(); $archiveTitle_html='<header class="archive-header"><h1>'.$archiveTitle.'</h1></header>'; } } echowp_kses_post(apply_filters('lightning_mainSection_archiveTitle',$archiveTitle_html)); /* Archive description /*-------------------------------------------*/ $archiveDescription_html=''; if(is_category()||is_tax()||is_tag()){ $archiveDescription=term_description(); $page_number=get_query_var('paged',0); if(!empty($archiveDescription)&& $page_number == 0 ) { $archiveDescription_html = '<div class="archive-meta">' . $archiveDescription . '</div>'; } } echowp_kses_post(apply_filters('lightning_mainSection_archiveDescription',$archiveDescription_html)); $postType=lightning_get_post_type(); do_action('lightning_loop_before'); ?> <div class="<?phplightning_the_class_name('postList');?>"> <?phpif(have_posts()):?> <!--セラピスト--> <div class="cast-wrapper"> <div class="box-title"></div> <div class="box-body"> <?phpwhile(have_posts()):the_post();?> <?phpget_template_part('content',('cast'));?> <?phpendwhile;?> </div> </div> <?php the_posts_pagination( array( 'mid_size'=>1, 'prev_text'=>'«', 'next_text'=>'»', 'type'=>'list', 'before_page_number'=>'<span class="meta-nav screen-reader-text">'.__('Page','lightning').' </span>', ) ); ?> <?phpelse:// hove_posts() ?> <div class="well"><p><?phpechowp_kses_post(apply_filters('lightning_no_posts_text',__('No posts.','lightning')));?></p></div> <?phpendif;// have_post() ?> </div><!--[/.postList]--> <?phpdo_action('lightning_loop_after');?> <?phpdo_action('lightning_mainSection_append');?> </div><!--[/.mainSection]--> <?phpif(lightning_is_subsection_display()){?> <div class="<?phplightning_the_class_name('sideSection');?>"> <?phpget_sidebar(get_post_type());?> </div><!--[/.subSection]--> <?php}?> <?phpdo_action('lightning_additional_section');?> </div><!--[/.row]--> <?phpdo_action('lightning_siteContent_container_apepend');?> </div><!--[/.container]--> <?phpdo_action('lightning_siteContent_apepend');?> </div><!--[/.siteContent]--> <?phpget_footer();?> |
content-cast.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | <?php $cast_fields=get_post_custom();//カスタムフィールドを全部取得 $cast_screens=json_decode($cast_fields['_cast_screens'][0]);//画像配列を用意 $cast_type_terms=get_the_terms($post->ID,'krc_type');//タイプタクソノミーを取得 $cast_grade_terms=get_the_terms($post->ID,'krc_grade');//グレードタクソノミーを取得 $cast_new_terms=get_the_terms($post->ID,'krc_new');//新人区分タクソノミーを取得 ?> <div class="cast"> <div class="cast-photo"> <?phpif(empty($cast_screens)):?> <div class="cast-photo-wrapper"><img src="<?phpechoget_stylesheet_directory_uri();?>/images/noimg.jpg"alt="<?phpthe_title();?>"></div> <?phpelse:?> <div id="slider"class="flexslider"> <ul class="slides blocks-gallery-grid"> <?phpforeach($cast_screensas$index=>$value):?> <li class="blocks-gallery-item"> <ahref="<?phpecho$value;?>"rel="gallery"> <img src="<?phpecho$value;?>"alt="<?phpthe_title();?> 写真 <?phpecho($index+1);?>"> </a> </li> <?phpendforeach;?> </ul> </div> <div id="thumbnail"class="flexslider"> <ul class="slides"> <?phpforeach($cast_screensas$value):?> <li alt="<?phpthe_title();?>"> <img src="<?phpecho$value;?>"alt="<?phpthe_title();?>"> </li> <?phpendforeach;?> </ul> </div> <?phpendif;?> </div> <div class="cast-profile"> <h2 class="sub-section"><?phpechoesc_html($cast_fields['_krc_name'][0]);?></h2> <div class="cast-meta"> <div class="cast-meta-left"> 年齢 </div> <div class="cast-meta-right"> <?phpechoesc_html($cast_fields['_krc_age'][0]);?>歳 </div> <div class="cast-meta-left"> 身長 </div> <div class="cast-meta-right"> T:<?phpechoesc_html($cast_fields['_krc_tall'][0]);?> </div> <div class="cast-meta-left"> スリーサイズ </div> <div class="cast-meta-right"> B:<?phpechoesc_html($cast_fields['_krc_bust'][0]);?>(<?phpechoesc_html($cast_fields['_krc_cups'][0]);?>) W:<?phpechoesc_html($cast_fields['_krc_waist'][0]);?> H:<?phpechoesc_html($cast_fields['_krc_hips'][0]);?> </div> <div class="cast-meta-left"> 新人区分 </div> <div class="cast-meta-right"> <div class="cast-new"> <?phpechoesc_html($cast_new_terms[0]->name);?> </div> </div> </div> <h2 class="sub-section">店長コメント</h2> <div class="cast-pr"><pre><?phpecho$cast_fields['krc_pr'][0];?></pre></div> <?phpif(!empty($cast_fields['tw_id'][0])):?> <h2 class="sub-section">Twitter</h2> <div class="cast-tw"> <aclass="twitter-timeline"data-width="300"data-height="400"data-chrome="noheader nofooter" href="https://twitter.com/<?phpechoesc_html($cast_fields['tw_id'][0]);?>?ref_src=twsrc%5Etfw">Tweetsby<?phpechoesc_html($cast_fields['tw_id'][0]);?> </a> <script async src="https://platform.twitter.com/widgets.js"charset="utf-8"></script> </div> <?phpendif;?> </div> <div class="cast-schedule"> <h2 class="sub-section">スケジュール</h2> <?phpsinglecalendar(get_the_ID());?> <div class="wp-block-button is-style-fill"> <ahref="/schedule"class="wp-block-button__link has-white-color has-text-color has-background">出勤情報はこちら</a> </div> </div> </div> <script type="text/javascript"> jQuery(function($){ $('#thumbnail').flexslider({ animation:"slide", controlNav:false, animationLoop:false, slideshow:false, itemWidth:200, itemMargin:5, asNavFor:'#slider' }); $('#slider').flexslider({ animation:"slide", controlNav:false, animationLoop:false, slideshow:false, sync:"#thumbnail" }); }); </script> |
single-cast.php から content-cast.php が呼び出されています。
スケジュールページ
content-castschedule.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php ?> <?php $cast_fields=get_post_custom();//カスタムフィールドを全部取得 $cast_screens=json_decode($cast_fields['_cast_screens'][0]);//画像配列を用意 $cast_type_terms=get_the_terms($post->ID,'krc_type');//タイプタクソノミーを取得 $cast_grade_terms=get_the_terms($post->ID,'krc_grade');//グレードタクソノミーを取得 $cast_new_terms=get_the_terms($post->ID,'krc_new');//新人区分タクソノミーを取得 ?> <div class="one-cast"> <?phpif(empty($cast_screens)):?> <ahref="<?phpechoget_template_directory_uri();?>/img/noimg.jpg"alt="<?phpthe_title();?>"class="iframe"> <?phpelse:?> <ahref="/cast/<?phpechoesc_html($cast_fields['_krc_name'][0]);?>"> <figure> <img src="<?phpecho$cast_screens[0];?>"alt="<?phpthe_title();?>"> </figure> <figcaption> <span class="cast-name"><?phpechoesc_html($cast_fields['_krc_name'][0]);?>(<?phpechoesc_html($cast_fields['_krc_age'][0]);?>歳)</span> <span class="cast-size">T:<?phpechoesc_html($cast_fields['_krc_tall'][0]);?>B:<?phpechoesc_html($cast_fields['_krc_bust'][0]);?>(<?phpechoesc_html($cast_fields['_krc_cups'][0]);?>)W:<?phpechoesc_html($cast_fields['_krc_waist'][0]);?>H:<?phpechoesc_html($cast_fields['_krc_hips'][0]);?></span> </figcaption> </a> <?phpif($fncName!='outNewType'):?> <?phpif(!empty($cast_new_terms[0]->name)):?> <span class="new_cast badge"></span> <?phpendif;?> <?phpendif;?> <span class="worktime badge"><?phpecho$work['starttime'];?>~<?phpecho$work['endtime'];?></span> <?phpif(!empty($cast_fields['tw_id'][0])):?> <aclass="tw"href="https://twitter.com/<?phpechoesc_html($cast_fields['tw_id'][0]);?>"target="_blank"></a> <?phpendif;?> <?phpendif;?> </div> |
スケジュールは functions.php の関数から呼び出し、記事ページに埋め込みます。
ランキングページ
管理メニューのランキング管理で作成したランキングを表示するページ。
archive-ranking.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | <?phpget_header();?> <!--ヘッダとパンくず無理やり変更--> <div class="section page-header"> <div class="container"> <div class="row"> <div class="col-md-12"> <h1 class="page-header_pageTitle">ランキング</h1> </div> </div> </div> <script> document.title=document.title.replace('ランキング管理','ランキング'); </script> </div> <div class="section breadSection"> <div class="container"> <div class="row"> <ol class="breadcrumb"itemtype="http://schema.org/BreadcrumbList"> <li id="panHome"itemprop="itemListElement"itemscope=""itemtype="http://schema.org/ListItem"> <aitemprop="item"href="https://sample.oilnoko.com/"><span itemprop="name"><iclass="fa fa-home"></i>HOME</span></a> </li> <li> <span>ランキング一覧</span></li> </ol> </div> </div> </div> <?php // Dealing with old files. // Actually, it's ok to only use get_template_part(). /* Page Header /*-------------------------------------------*/ $old_file_name[]='module_pageTit.php'; if(locate_template($old_file_name,false,false)){ locate_template($old_file_name,true,false); }else{ //get_template_part( 'template-parts/page-header' ); } /* BreadCrumb /*-------------------------------------------*/ do_action('lightning_breadcrumb_before'); $old_file_name[]='module_panList.php'; if(locate_template($old_file_name,false,false)){ locate_template($old_file_name,true,false); }else{ //get_template_part( 'template-parts/breadcrumb' ); } do_action('lightning_breadcrumb_after'); ?> <div class="<?phplightning_the_class_name('siteContent');?>"> <?phpdo_action('lightning_siteContent_prepend');?> <div class="container"> <?phpdo_action('lightning_siteContent_container_prepend');?> <div class="row"> <div class="<?phplightning_the_class_name('mainSection');?>"id="main"role="main"> <?phpdo_action('lightning_mainSection_prepend');?> <?php /* Archive title /*-------------------------------------------*/ $archiveTitle_html=''; $page_for_posts=lightning_get_page_for_posts(); // Use post top page( Archive title wrap to div ). if($page_for_posts['post_top_use']||get_post_type()!=='post'){ if(is_year()||is_month()||is_day()||is_tag()||is_author()||is_tax()||is_category()){ $archiveTitle=get_the_archive_title(); $archiveTitle_html='<header class="archive-header"><h1>'.$archiveTitle.'</h1></header>'; } } echowp_kses_post(apply_filters('lightning_mainSection_archiveTitle',$archiveTitle_html)); /* Archive description /*-------------------------------------------*/ $archiveDescription_html=''; if(is_category()||is_tax()||is_tag()){ $archiveDescription=term_description(); $page_number=get_query_var('paged',0); if(!empty($archiveDescription)&& $page_number == 0 ) { $archiveDescription_html = '<div class="archive-meta">' . $archiveDescription . '</div>'; } } echowp_kses_post(apply_filters('lightning_mainSection_archiveDescription',$archiveDescription_html)); $postType=lightning_get_post_type(); do_action('lightning_loop_before'); ?> <div class="<?phplightning_the_class_name('postList');?>"> <?phpif(have_posts()):?> <!--ランキング一覧--> <div class="cast-wrapper"> <?phpwhile(have_posts()):the_post();?> <div class="rank-box bpink"> <?phpget_template_part('content',('rankinglist'));?> </div> <?phpendwhile;?> </div> </div> <?php the_posts_pagination( array( 'mid_size'=>1, 'prev_text'=>'«', 'next_text'=>'»', 'type'=>'list', 'before_page_number'=>'<span class="meta-nav screen-reader-text">'.__('Page','lightning').' </span>', ) ); ?> <?phpelse:// hove_posts() ?> <div class="well"><p><?phpechowp_kses_post(apply_filters('lightning_no_posts_text',__('No posts.','lightning')));?></p></div> <?phpendif;// have_post() ?> </div><!--[/.postList]--> <?phpdo_action('lightning_loop_after');?> <?phpdo_action('lightning_mainSection_append');?> </div><!--[/.mainSection]--> <?phpif(lightning_is_subsection_display()){?> <div class="<?phplightning_the_class_name('sideSection');?>"> <?phpget_sidebar(get_post_type());?> </div><!--[/.subSection]--> <?php}?> <?phpdo_action('lightning_additional_section');?> </div><!--[/.row]--> <?phpdo_action('lightning_siteContent_container_apepend');?> </div><!--[/.container]--> <?phpdo_action('lightning_siteContent_apepend');?> </div><!--[/.siteContent]--> <?phpget_footer();?> |
content-rankinglist.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <?php $ranking_fields=get_post_custom(); //カスタムフィールドを取得 $ranking_cast_ids=json_decode($ranking_fields['_cast_rankings'][0]); $cast_type_terms=get_the_terms($post->ID,'krc_type');//タイプタクソノミーを取得 $cast_grade_terms=get_the_terms($post->ID,'krc_grade');//グレードタクソノミーを取得 ?> <h2 class="sub-section"><?phpthe_title();?></h2> <?php $rank=1; foreach($ranking_cast_idsas$cast_id){ $cast=get_post_custom($cast_id,'_krc_age','_krc_tall','_krc_bust','_krc_cups','_krc_waist','_krc_hips',true); $cast_new_terms=get_the_terms($cast_id,'krc_new'); ?> <div class="one-cast"> <ahref="/cast/<?phpechoesc_html($cast['_krc_name'][0]);?>"> <figure> <img src="<?php $img_url=json_decode(get_post_meta($cast_id,'_cast_screens',true));echoesc_url($img_url[0]);?>"class="trimming" alt="<?php echo$cast['_krc_name'][0];?> loading="lazy" "/></a> </figure> <figcaption> <span class="cast-name"><?phpechoesc_html($cast['_krc_name'][0]);?>(<?phpechoesc_html($cast['_krc_age'][0]);?>歳)</span> <span class="cast-size">T:<?phpechoesc_html($cast['_krc_tall'][0]);?>B:<?phpechoesc_html($cast['_krc_bust'][0]);?>(<?phpechoesc_html($cast['_krc_cups'][0]);?>)W:<?phpechoesc_html($cast['_krc_waist'][0]);?>H:<?phpechoesc_html($cast['_krc_hips'][0]);?></span> </figcaption> </a> <?phpif($rank<10):?> <span class="rank"> <img src="<?phpechoget_stylesheet_directory_uri();?>/images/rank<?phpecho$rank;?>.png"alt="No.<?phpecho$rank;?>"/> </span> <?phpendif;?> <?phpif($fncName!='todaysCastHtml'):?> <?phpif(today_schedule($cast_id)):?> <span class="todays_cast badge">本日出勤</span> <?phpendif;?> <?phpendif;?> <?phpif($fncName!='outNewType'):?> <?phpif(!empty($cast_new_terms[0]->name)):?> <span class="new_cast badge"></span> <?phpendif;?> <?phpendif;?> <?phpif(!empty($cast['tw_id'][0])):?> <aclass="tw"href="https://twitter.com/<?phpechoesc_html($cast['tw_id'][0]);?>"target="_blank"></a> <?phpendif;?> </div> <?php $rank++; } ?> </div> |
archive-ranking.php から content-rankinglist.php が呼び出されます。
CSS
style.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 | @charset "utf-8"; /* Theme Name: Lightning Child Sample Theme URI: ★ テーマの公式サイトなどのURL(空欄でも可) ★ Template: lightning Description: ★ テーマの説明(空欄でも可) ★ Author: ★ テーマ作成者の名前(空欄でも可) ★ Tags: Version: 0.1.2 */ /** * 共通 */ h2.sub-section { padding-bottom:8px; position:relative; border:0px; text-align:center; } h2.sub-section:first-child { margin-bottom:50px; } h2.sub-section::after { content:""; position:absolute; bottom:0; left:0; width:100%; height:5px; border:0px; background:linear-gradient(toright,transparent0%,#cf2e2e50%,#cf2e2e50%,transparent100%); } .page-header { background-color:#f1d2d0; background:linear-gradient(25deg,transparent0%,#cf2e2e50%,#cf2e2e50%,transparent100%); } .wp-block-group.is-style-vk-group-shadow.home-block { margin:20px0px; } .wp-block-button__link.has-white-color.has-text-color.has-background { background-color:#d03232; width:100%; margin-bottom:20px; } .mobile-linebox { border:3pxsolid#efefef; padding:10px; background-color:#f9f9f9; box-shadow:inset0001pxrgba(255,255,255,.5); } .mobile-linebox > div { margin:15px0px; } /** * キャストスケジュール */ .krc_calendar { border-top:1pxsolid#ccc; border-left:1pxsolid#ccc; border-bottom:1pxsolid#ccc; font-size:13px; margin:24px0; box-shadow:02px15pxrgba(0,0,0,0.22); } .krc_calendar dl { margin:0px; border:0px; border-right:1pxsolid#ccc; width:20%; float:left; display:block; } .krc_calendar dl dt { border:0px; border-bottom:1pxsolid#ccc; text-align:center; padding:2px; background-color:#f9e7e7; font-weight:normal; } .krc_calendar dl dd { border:0px; text-align:center; text-decoration:none; padding:24px2px; display:block; color:#ff9900; font-weight:bold; } /** * 出勤情報 */ .week_calendar ul { list-style:none; overflow:hidden; margin:5px0px; padding:0px; width:100%; } .week_calendar ul li { position:relative; float:left; width:14%; } .week_calendar ul li a { display:block; padding:17px5%; width:99%; color:#fff; background-color:#ff0000; text-align:center; text-decoration:none; } .week_calendar ul li.target a { background-color:#ff8080; } .week_calendar ul li a:hover { background-color:#ffaaaa; } /** * キャスト一覧 */ .rank-box.bpink { border:1pxsolid#efefef; background-color:#fcf4f4; border-radius:5px; padding:15px0px; margin-bottom:20px; } .one-cast { display:inline-block; position:relative; max-width:235px; height:380px; margin:012px4px; padding:0; text-align:center; line-height:1.3em; overflow:hidden; letter-spacing:normal; border-radius:3px; box-shadow:15px15px15pxrgba(0,0,0,0.22); } .rank-box > .one-cast { margin:018px4px } .one-cast a.iframe { z-index:8; position:relative; display:block; width:100%; height:100%; padding:0; color:#111; } .one-cast figure { position:relative; margin:0auto0; padding:0; overflow:hidden; position:relative; text-align:center; width:100%; height:300px; overflow:hidden; } .one-cast figure img { width:235px; height:v; } .one-cast figcaption { position:relative; width:100%; height:68px; margin:0; padding:5px00; text-align:center; font-size:14px; line-height:1.2em; } /** * キャスト個人ページ */ .cast { overflow:hidden; border:0pxsolidgray; box-shadow:02px15pxrgba(0,0,0,0.22); padding:20px; } .cast-photo { padding:10px; width:50%; min-width:300px; float:left; } .cast-profile { padding:10px; width:50%; min-width:300px; float:left; } .cast-schedule { width:100% } .cast-meta { overflow:hidden; text-align:center; } .cast-meta-left { width:49%; float:left; text-align:right; background-color:#f9e7e7; margin:1px; padding:10px; } .cast-meta-right { width:49%; float:left; text-align:left; margin:1px; padding:10px; } .cast-pr { font-size:18px; overflow:hidden; line-height:1.8; padding:15px10px;; } .cast-pr pre { white-space:pre-wrap; } #slider, #thumbnail { border:5pxsolid#e58f8f; } #slider { margin-bottom:-10px; max-height:600px; overflow:hidden; } #slider ul { overflow:hidden; } #thumbnail { max-height:170px; overflow:hidden; } #thumbnail .slides li { width:auto!important; } #thumbnail .slides img { width:auto; max-height:170px; -moz-user-select:none; } #thumbnail img { opacity:0.5; } #thumbnail .flex-active-slide img { opacity:1; cursor:default; } /** * ツイッターアイコン */ .one-cast .tw { right:0px; top:260px; width:50px; height:50px; position:absolute; display:block; background-position:centertop; background-repeat:no-repeat; background-size:cover; z-index:26; background-image:url(images/twitter_icon.png); } .one-cast .tw:hover { opacity:0.8; } /** * 当日出勤バッジ */ .one-cast .todays_cast { right:0px; top:0px; border-radius:3px; background-color:#ed561b; color:#fff; font-size:14px; opacity:0.9; font-weight:normal; padding:5px; } .one-cast .todays_cast { position:absolute; display:block; z-index:26; } /** * 出勤時間バッジ */ .one-cast .worktime { text-align:left; left:0px; top:275px; width:100%; background-color:#ed561b; color:#fff; font-size:18px; opacity:0.8; font-weight:normal; padding:5px5px5px20px; border-radius:0px; } .one-cast .worktime { position:absolute; display:block; z-index:26; } /** * 新人バッジ */ .one-cast .new_cast { left:0px; top:0px; width:50px; height:50px; position:absolute; display:block; background-position:centertop; background-repeat:no-repeat; background-size:cover; z-index:26; background-image:url(images/new_icon.png); opacity:0.9; } /** * 新人バッジ */ .one-cast .rank { left:0px; top:300px; width:70px; height:50px; position:absolute; display:block; background-position:centertop; background-repeat:no-repeat; background-size:cover; z-index:26; opacity:0.9; } /** * キャスト情報 */ .one-cast a { text-decoration:none; } .one-cast figcaption span.cast-name { display:block; font-size:130%; color:#ff8080; padding:10px0px; } .one-cast figcaption span.cast-size { display:block; color:#000; } .one-cast figcaption span.cast-time { display:block; color:#e1053b; } /** * 電話ボタン */ .vk_button_link.btn { position:fixed; bottom:10px; right:10px; padding:6px0px; opacity:0.8; z-index:100; } .vk_button_link_before { margin-right:0.0rem; } .vk_button_link { min-width:50px; min-height:50px; border-radius:25px; background-color:#7bdcb5; border:1pxsolid#7bdcb5; color:#fff; } /** * スマホ対応 */ @media screen and (max-width:480px) { /* 画面サイズが480pxからはここを読み込む */ #thumbnail { display:none; } .home-block, .box-body { text-align:center; font-weight:normal; } .krc_calendar dl { min-height:135px; } .wp-block-group.is-style-vk-group-shadow.home-block { padding:5px0px; } .cast { margin:10px15px; } .one-cast { max-width:145px; height:245px; margin:0px5px4px; } .one-cast figure { height:135px; } .one-cast figure img { } .one-cast figcaption span.cast-name { display:block; font-size:110%; color:#ff8080; padding:10px0px; } /** * ツイッターアイコン */ .one-cast .tw { top:105px; width:35px; height:35px; } /** * 当日出勤バッジ */ .one-cast .todays_cast { font-size:10px; opacity:0.7; } /** * 出勤時間バッジ */ .one-cast .worktime { top:0px; top:125px; font-size:10px; text-align:left; padding:5px5px; } /** * 新人バッジ */ .one-cast .new_cast { width:35px; height:35px; } } |
その他
スケジュールの時間単位変更
デフォルトだと10時から27時(LAST)までの1時間単位ですが、30分単位にしてほしいということで少しプラグインを弄りました。
プラグインフォルダの js にある「krc-cast-schedule.js」で変更ができます。
krc-cast-schedule.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | $jq=jQuery.noConflict(); $jq(document).ready(function(){ varhiduke=newDate(), year=hiduke.getFullYear(), month=hiduke.getMonth()+1, day=hiduke.getDate(), today=year +'/'+month+'/'+day; vartime_popup='<dd class="time_input"><div class="time_popup"><dl><dt><label for="遅早表記">遅早表記</label></dt><dd><select name="fastslow" class="fastslow"><option value="0">指定無</option><option value="早番">早番</option><option value="中番">中番</option><option value="遅番">遅番</option></select></dd></dl><dl><dt><label for="時間表記">時間表記</label></dt><dd><select name="starttime" class="starttime"><option value="0">指定無</option>'; time_popup+='<option value="OPEN">OPEN</option>'; for(vari=10;i<=26;i++){ time_popup+='<option value="'+("00"+i).slice(-2)+':00">'+("00"+i).slice(-2)+':00</option>'; time_popup+='<option value="'+("00"+i).slice(-2)+':30">'+("00"+i).slice(-2)+':30</option>'; } time_popup+='</select><br>から</dd><dd><select name="endtime" class="endtime"><option value="0">指定無</option>'; for(vari=10;i<=26;i++){ time_popup+='<option value="'+("00"+i).slice(-2)+':00">'+("00"+i).slice(-2)+':00</option>'; time_popup+='<option value="'+("00"+i).slice(-2)+':30">'+("00"+i).slice(-2)+':30</option>'; } time_popup+='<option value="LAST">LAST</option>'; time_popup+='</select></dd></dl></div></dd>'; $jq("#datepicker").datepicker({ 'altField':'#schedule_target_day', 'dateFormat':'yy/mm/dd', 'closeText':true, 'onSelect':function(chosen,inst){ //PHPに初期データ取りに行く $jq.post(ajaxurl,{action:'krc_schedule_target_day','order':chosen},function(data,status){ varcast_arr=$jq.parseJSON(data), post_in_sort=[]; $jq('#schedule_cast_out').empty(); $jq('#schedule_cast_in').empty(); $jq('#krc_schedule_rest').remove(); if(cast_arr['rest']=='rest'){ //console.log($jq('#schedule_cast_in:before')); $jq('#schedule_cast_in').before('<div id="krc_schedule_rest">■定休日に設定しています</div>'); }else{ $jq.each(cast_arr['post_in'],function(i,val){ post_in_sort[val['s_order']]=i; }); $jq.each(post_in_sort,function(i,val){ $jq('#schedule_cast_in').append('<dl class="schedule_cast ui-sortable-handle" id="item_'+val+'"><dt>'+cast_arr['post_in'][val]['krc_name']+'</dt><dd><img src="'+cast_arr['post_in'][val]['cast_screens']+'" width="100" class="cast_photo" /></dd>'+time_popup+'</dl>'); $jq('#item_'+val).find(".fastslow").val(cast_arr['post_in'][val]['fastslow']); $jq('#item_'+val).find(".starttime").val(cast_arr['post_in'][val]['starttime']); $jq('#item_'+val).find(".endtime").val(cast_arr['post_in'][val]['endtime']); }); /* $jq.each(cast_arr['post_in'], function (i, val) { $jq('#schedule_cast_in').append('<dl class="schedule_cast ui-sortable-handle" id="item_' + i + '"><dt>' + val['krc_name'] + '</dt><dd><img src="' + val['cast_screens'] + '" width="100" class="cast_photo" /></dd>' + time_popup + '</dl>'); $jq('#item_' + i).find(".fastslow").val(cast_arr['post_in'][i]['fastslow']); $jq('#item_' + i).find(".starttime").val(cast_arr['post_in'][i]['starttime']); $jq('#item_' + i).find(".endtime").val(cast_arr['post_in'][i]['endtime']); }); */ } $jq.each(cast_arr['post_not_in'],function(i,val){ $jq('#schedule_cast_out').append('<dl class="schedule_cast ui-sortable-handle" id="item_'+i+'"><dt>'+val['krc_name']+'</dt><dd><img src="'+val['cast_screens']+'" width="100" class="cast_photo" /></dd></dl>'); }); //console.log(data); }); }, }); $jq("#schedule_cast_out").sortable({ 'connectWith':'#schedule_cast_in', }); $jq("#schedule_cast_in").sortable({ 'connectWith':'#schedule_cast_out', }); $jq("#schedule_cast_out, #schedule_cast_in").sortable({ 'tolerance':'pointer', 'cursor':'move', 'stop':function(evt,ui){ if(ui.item.parent().attr("id")=='schedule_cast_in'){ if(ui.item.find(".time_input").length==0){ ui.item.append(time_popup); } }else{ ui.item.find(".time_input").remove(); } } }); $jq("#save-schedule").bind("click",function(){ $jq("html, body").animate({scrollTop:0},"fast"); //出勤時間データとか何とかしなきゃ //この配列回してカスタムしたデータをpostしてポップアップの内容も合わせて送る? varpost_arr={}; $jq.each($jq("#schedule_cast_in").sortable("toArray"),function(i,val){ id=val.replace(/item_/g,''); //console.log(i); post_arr[id]={ 'fastslow':$jq('#'+val+' .fastslow').val(), 'starttime':$jq('#'+val+' .starttime').val(), 'endtime':$jq('#'+val+' .endtime').val(), 's_order':i }; }); $jq('#krc_schedule_rest').remove(); $jq.post(ajaxurl,{action:'krc_schedule_update',order:post_arr,day:$jq("#schedule_target_day").val()},function(data,status){ $jq("#ajax-response").html('<div class="message updated fade"><p>スケジュールを変更致しました。</p></div>'); $jq("#ajax-response div").delay(3000).hide("slow"); }); }); $jq("#rest-schedule").bind("click",function(){ $jq("html, body").animate({scrollTop:0},"fast"); $jq.post(ajaxurl,{action:'krc_schedule_update',order:'rest',day:$jq("#schedule_target_day").val()},function(data,status){ $jq("#ajax-response").html('<div class="message updated fade"><p>定休日に設定致しました。</p></div>'); $jq("#ajax-response div").delay(3000).hide("slow"); console.log(data); }); }); }); /*! jQuery UI - v1.8.20 - 2012-04-30 * https://github.com/jquery/jquery-ui * Includes: jquery.ui.datepicker-ja.js * Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ $jq(function(a){a.datepicker.regional.ja={closeText:"閉じる",prevText:"<前",nextText:"次>",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"},a.datepicker.setDefaults(a.datepicker.regional.ja)}); |
Twitter 連携、コメントの追加
キャスト一覧の写真に個人の Twitter を連携、個人の詳細ページにコメントを挿入するのにキャスト管理ページでカスタムフィールドを利用しています。
キャスト詳細の画像表示
画像表示に 「jquery.flexslider (スライダー)」と、Wordpressプラグインの 「Easy FancyBox」(拡大表示)を利用しています。
まとめ
今まであまり wordpress プラグインの中身に触れる機会がありませんでしたが、おかげで色々と勉強になりました。
キャスト管理が必要なHP制作(Wordpress)、サクッと出来るものであれば安価で承りますよ。笑
・キャスト管理で新しい項目を登録できるようにしてキャスト一覧やプロフィールページに表示
・スケジュールで新しい項目を登録できるようにしてスケジュールページに表示
・スケジュールページで日付クリックをした際にリロードせずに切り替えるようにする
・メール投稿による他サイト連携(ブログ機能)
・サイドバーにキャストスライダーの組み込みキャスト管理関係なく、デザインの対応も可能です。
ちなみに記事を公開してから5サイトご依頼いただきました。ありがとうございます。
気になった方はチェックしてみてください。
ではでは。
ディスカッション
コメント一覧
ようやく自分の探していたサイトに出会えたのですが、CSSが書けなくて泣きました。なんとか表示は出来たのですが。
教えてもらうことは不可能ですよね?
すぐる様
ブログを見ていただきありがとうございます。
簡単な相談であればご協力致しますので、doraxdora.gm.biz@gmail.com までご連絡ください。
宜しくお願いします。
貴重な情報ありがとうございます。
情報を元にプラグインを動かすことが出来ました。
一つ問題が出ております。
https://ogikubo.oilnoko.com/schedule/
上記このスケジュールのところに13人以上のキャストを表示しようとするとページが表示されなくなります。
https://ogikubo.oilnoko.com/cast/
上記一覧の場所には30人程同時表示も可能です。
下記コードのループでエラーが出ているように思います。
foreach ($works_array as $rder => $id)
{
$args = array(
‘post_type’ => ‘cast’,
‘post__in’ => array(
$id
) ,
);
query_posts($args);
while (have_posts()):
the_post();
set_query_var(‘work’, $works[$id]);
set_query_var(‘fncName’, ‘schedulehtml’);
get_template_part(‘content’, (‘castschedule’));
endwhile;
wp_reset_query();
}
かなり検証したのですが、解決できず、ご助力いただければ有り難いです。
そちらの環境では13名以上を「https://ogikubo.oilnoko.com/schedule/」に表示できますでしょうか?
大変お手数ですがご助力ください。
西川様
ブログを見ていただきありがとうございます。
ご質問の件、
検証してみたところ特に問題なく表示できました。
詳細はメールにてお願いします。
よろしくお願いします。
お世話になります!
個別ページは表示させるのですが、一覧ページが表示されなくて困っております。
コピぺで作ったのですが、ページ自体がない感じでした。
原因としては何が考えられるでしょうか?
すぐる様
ブログを見ていただきありがとうございます。
まず前提の話しになりますが、Wordpressテーマは Lightning でしょうか。
そうでない場合は、私の方でも検証はしていませんのでお力になれないかと思います。
一覧ページは、ルートURL/cast/ へのアクセスで archive-cast.php が呼び出され、内部で content-castlist.php が読み込まれています。
まずはこの2ファイルの内部処理をご確認ください。
宜しくお願いします。
返信ありがとうございます。
Wordpressテーマは Lightningを使っています。
ルートURL/cast/ へアクセスしてもNot Found The requested URL was not found on this server.と表示されてしまう状態です。
表示だけでも出来ればと思い何度かコピーしてファイルを作り直りたりはしてみたのですが、変わらずで。。。
すいません初心者なものでこれ以上どうすれば良いのかわからなくて
すぐる様
Lightningの子テーマをご使用でしょうか?
そうであれば、各ファイルは、/wp-content/themes/lightning-child/ に配置されていますか?
返信は doraxdora.gm.biz@gmail.com へお願い致します。
以上です。
宜しくお願いします。
どうも、こんにちは。
lightningで使用させていただいております。
現在構築中です。
一昨年、別のthemeで構築し、現在運営中の店舗様の時もそうだったのですが、
キャストのスケジュール登録の際、セレクトボックスで時間を選択する際に、PCでは問題ないのですが、
スマホからではセレクトボックスが開かず、登録出来ない事がありまして、どのように対処すればよろしいか、わかりますでしょうか?
今回の店舗様、スマホで更新することが多いみたいで、改善出来れば助かるのですが。
田中様
ブログを見ていただきありがとうございます。
ご質問の件、
私の環境でも確認することができました。
どうもドラッグアンドドロップのためのイベント処理が邪魔をしているようで、
簡単に対応することが出来ません。
お力になれず申し訳ございません。
本家の方へ質問させていただき、Yahooブラウザだと解決出来るようです。
ためしにやってみたところ、うまくいきました。
あと、キャスト登録の際、うまく画像が登録出来ないのですが、なにか対処方法ありますでしょうか??
田中様
お世話になっております。
Yahooブラウザで動作するとのことでよかったです。
ご質問の件ですが、
いただいた内容ですと私の方では何もわかりません。
エラーが出るのか、登録しても反映されないのか、PCなのかスマホなのかなどもう少し情報をいただけますか。
以上です。
よろしくお願いします。
すいません、画像登録の方、プラグインファイル群を再アップすると治りました。
あと、新人以外にピックアップキャストみたいな感じを作り、一覧表現させるには、どのようにすればよろしかったでしょうか?
田中様
お世話になっております。
ご質問の件、function.php に関数を追加してショートコードを定義、
お好きな場所に挿入すればよろしいかと思います。
私も有償で何店舗か導入させていただいていまして、他の方に対して不公平になってしまいますのであまり無償でサポートすることが出来ません。
お力になれず申し訳ございません。
有償でよろしければお力になれますので、メールの方にご連絡をお願いいたします。
よろしくお願いします。
本家サイトを見ても良くわからなかったのですが、拝見させて頂き参考になりました!ありがとうございます。
URL/castで表示はしたのですが、恐らくはCSSが効いてないのかサンプルの様な表示になりませんでした。
URL/scheduleでは日付が箇条書きにの表示になっております。
テーマはLightning、子テーマはLightning-child-sampleです。
「最終的なフォルダ構成はこんな感じです」
https://www.doraxdora.com/wp-content/uploads/2020/10/krcSample201.jpg
にcss,fonts,images,jsが表示されていますが、このフォルダはどちらから取得したら宜しいでしょうか。
ご教示いただけると幸いです。
Kei様
ブログを見ていただきありがとうございます。
css,fonts,js については、Flex Slider というJQueryプラグインのファイルですので、公式等より取得していただければと思います。
単純にサイトの見た目については、style.css で調整しています。(追記しておきました)
imagesに入ってる画像は、サンプルサイトより取得してください。
宜しくお願い致します。
大変すばらしい記事でとても助かります。
そっくりそのまま真似してみたのですが、セラピスト一覧ページにセラピストが表示されないのですが、
こちらの記事以外にしなければならないことはあるのでしょうか?
今回有償での依頼も視野に入れています…
Hiro様
ブログを見ていただきありがとうございます。
ご質問の件ですが、
Lightningテーマでよろしいですか?
おそらくですが、パーマリンクの設定が「投稿名」以外になっていませんか?
ご確認のほど、よろしくお願いします。
早速のご返信ありがとうございます!
パーマリンクの設定も問題なく投稿名になっております…
出勤情報の一覧にはキャストが表示されるので、初歩的なミスな気もしてます。
phpファイルをあれこれデバッグしてみてます。
あと、キャストの個人ページも何も表示されないです。(ページ自体はあります。)
キャストを新規登録すれば自動的に個人ページも画像等で生成されるということでまちがいないのでしょうか?
Hiro様
パーマリンクの問題でなければ、
今までにご質問を受けたことからは思い当たることがありませんね。。
Lightningテーマであれば、何か初歩的なことだと思いますし、
他のテーマであればそもそも、少し表示させる方法が違うことも考えられます。
キャスト個人ページについても、基本的には自動で表示できるようになっております。
ひとつ注意することは、キャスト管理から追加する際に、カスタム投稿のタイトルとキャスト名を合わせる必要があるくらいかと思います。
以上です。
よろしくお願いします。
そうですよね…
かれこれ3日ほど悩んでおりますが、いまだ改善できません。
Lightningテーマを使っておりますが子テーマを使うこと自体初めてなので初歩的なミスなのかもしれないとも思います。
1つひっかかるのは、スケジュールページは全て正常なのに対して(中央揃えがうまくいっていませんが)
セラピスト一覧ページはパンくずリストでさえも正常に表示できておりません。(前者は横一列に表示されて正常、後者は縦に並んでいて1.2と番号がついている)
メールにてURLをお送りしたら具体的なアドバイスはいただけますでしょうか?
よろしくお願いいたします。
Hiro様
ご質問の件、
スケジュールページとキャスト一覧(キャスト個人ページ)はそもそもの仕組みが違うため、
スケジュールページだけ正常に表示できるということはあり得る話です。
パンくずリストについてはCSSの問題かと思います。
細かいご質問等はメールにていただけると幸いですが、
環境に問題がある場合もございますので、お力になれるかはわかりません。
よろしくお願いします。
お世話になっております。
本家の方でもご質問させていただいたのですが解決せず困っています。
個人スケジュールの曜日と日付がずれる現象と
6時になってもスケジュールが変わらない現象が起こっております。
当方、ほぼこちらで用意いていただいているものを、コピペで使わせていただいております。
こちらのサンプルでも同じ現象が起こっているようです。
https://sample.oilnoko.com/
このあたりを色々自分なりにいじってみたのですが旨く行きません・・・
$today=strtotime(date(“Y-m-d”,strtotime(“+3 hour”)));
$time9=9-6;//6時に次の日のスケジュールに切り替わる仕様
ご教示いただけると幸いです。
あつ様
ブログを見ていただきありがとうございます。
ご質問の件ですが、
その問題については承知しております。
曜日のインデックスを取得する際に、調整した日付(+3 hour)を利用していないため
世界標準時間を元にした日付の曜日になってしまっていると思います。
該当箇所:
date(‘w’, strtotime(‘+’ . $i . ‘ day’));
プログラムをしっかり読めば難しい問題ではないかと思いますよ。
よろしくお願いします。
返信ありがとうございます。わかりやすいご説明していただきまして助かりました。
てことはdateの部分をwp_dateに置き換えれば(+3 hour)する必要がないため、それで解決する感じの認識でよろしいでしょうか?
あつ様
ご質問の件、ご認識のとおりです。
ただし、日付が変わるのは00:00なので、例えば6時に切り替えたいということであれば調整は必要となります。
以上です。
よろしくお願いします。
ありがとうございます。
例えば朝の5時ならば、(“-5 hour”)のタイムスタンプを与えてやればいいわけですね。
問題解決しそうです、助かりました!
あつ様
問題解決しそうということでよかったです。
引き続きよろしくお願いします。
はじめまして、こんばんは。拝見させていただきました。ありがとうございます。
当方素人でして恐縮ですが、こちらにありました全てをコピペし、Lightningの子テーマのファイルに入れワードプレスにアップしたところ、エラーが起き管理画面にさえ入れなくなってしまい初期化しないと使えなくなってしまいました。当方Z.comにてワードプレスを使っております。どのようにすればうまくkrc-cast-managerが表示できますでしょうか?お手すきにアドバイス頂けると幸いです。
かい様
ブログを見ていただきありがとうございます。
ご質問の件、
エラーの内容等を教えていただけますか。
よろしくお願いします。
お返事いただきありがとうございます。
サイトに重大なエラーがありました。とだけ出まして、それ意外出ておりません。
本日試行錯誤しましてキャストスケジュールボタンなどが表示されるまではできたのですが、キャストの写真が表示されず枠と名前のみ、明日以降のボタンを押すとページがありませんでした。
ちなみに有償での作成はおいくらからしておりますでしょうか。
度々恐れ入りますが返信いただけましたら幸いです。
かい様
先日メールを送らせていただきましたので、
ご確認いただければと思います。
よろしくお願いします。
キャスト管理で参考にさせていただきました。
Lightning G3(最新バージョン)で構築してみているのですが、
1.子テーマのCSSが反映されない
2.キャストに設定した画像ではなく、noimgが表示されてしまう
ことで困っております。
LightningはG2(13系)を適用しており、各PHPの動作は問題ないようです。
思い当たる点がございましたらご教示いただけないでしょうか?
失礼しました。
LightningのテーマカスタマイズでG2を再読み込みしたところ、CSSが正常に読み込まれました。
また、キャスト画像がnoimgになってしまう原因はcontent-castlist.phpの画像配列を取得する際、
「_cast_screens」を
「_krc_cast_screens」と修正したら表示されました。
こういったサイトを探していました。有難う御座います。
一度こちらのサイトに載せて頂いている通りに行ってみたのですが。
キャスト一覧ページを開くと
エラー分が出てしまいます。
( ! ) Fatal error: Uncaught Error: Call to undefined function lightning_get_page_for_posts() in /Users/nishiyamahironori/Local Sites/tonaerinoanohito2/app/public/wp-content/themes/lightning-child/archive-cast.php on line 69
( ! ) Error: Call to undefined function lightning_get_page_for_posts() in /Users/nishiyamahironori/Local Sites/tonaerinoanohito2/app/public/wp-content/themes/lightning-child/archive-cast.php on line 69
関数が定義できていない?ということなんでしょうか?
勉強不足で大変申し訳ないのですが、ご教授いただけたら幸いです。
テーマはLightningで、パーマリンクは投稿名にしてあります。
ぜひよろしくお願い致します。
西山様
ブログを読んでいただきありがとうございます。
ご質問の件、メールにてご回答差し上げましたのでご確認ください。
はじめまして。私も当ブログを参考にさせていただきました。
PHPはあまりいじったことがなかったので大変たすかりました。
私も上記質問と同じ状況になっておりまして、ぜひアドバイスをいただけますと幸いです。
エラー内容:
( ! ) Fatal error: Uncaught Error: Call to undefined function lightning_get_page_for_posts() in
/Local Sites/ryotaryota/app/public/wp-content/themes/lightning-child/archive-cast.php on line 69
お忙しいところ恐縮ですが、ご回答いただけますと幸いです。
山本涼太様
ブログを読んでいただきありがとうございます。
ご質問の件、Lightning のバージョンアップによる影響で古い関数が使えなくなったために発生しているエラーと思われます。
ひとまず対応するのであれば、テーマの設定で、g3 から g2 に変更してみてください。
そのうち g3 対応版の記事も書けたら書きます。
今後もよろしくお願いします。
はじめまして。
とても参考になり、ありがたく拝見しております。
質問させて頂きたいのですが、
キャスト(個人)ページの「店長コメント」ですが、
こちらはどこで内容を登録するのでしょうか?
キャストマネージャーの管理画面にはそのような登録欄は無いように見受けるのですが、、
素人質問ですみません。
ご教授頂けると助かります。
使用テーマはLightning(子テーマ)です。
永田様
ブログを見ていただきありがとうございます。
ご質問の件ですが、
キャスト管理の画面で、キャストのカスタムフィールドに「krc_pr」という項目を追加することで表示できるかと思います。
宜しくお願いします。
管理者様
当該の件、入力・表示することができました。
お忙しい中、ありがとうございました。
管理者様 はじめまして
krc-cast-managerの情報検索でこのページを見つけました。
wpは初心者ですが、外観 テーマでLightning child が見つからないので、もしLightningでこのサイトの設定で
他の変更箇所等、ご教授いただければ幸いです。
よろしくお願いいたします
watanabe様
ブログを見ていただきありがとうございます。
ちょっと質問の意味が分かりかねます。
Lightning child (子テーマ)についてはネット検索すれば沢山ヒットすると思いますよ。
宜しくお願いします。
ご返事ありがとうございます
子テーマの件ありがとうございました。
テーマ作成し(lightning >> lightning-child)
function.php
style.css
ファイルを子ホルダーに入れテーマを有効にし、無事表示はされました。
plugin ホルダーにkrc-cast-managerをコピーし
Easy Fancyboxも有効にしました。
キャストマネージャーのメニューからキャストの登録はできましたが、
サイト名/cast/とすると 下記のエラーが出ます
Parse error: syntax error, unexpected ‘:’ in /home/r2865063/public_html/nfeel.net/wp-content/themes/lightning-child/archive-cast.php on line 99
このサイトで重大なエラーが発生しました。
wp初心者です ご教授お願いいたします。
こちらの記事を参考にエステサイトの構築をさせていただいております。
スケジュールに関しての質問なんですが、/scheduleにアクセスしても正常にページが表示されないようでした。
/cast 及び /cast/は正常に表示されます。
content-castschedule.phpとurlの紐付けの仕組みがいまいちわかっておらず原因の特定に至っていないのですが、考えられる原因はございますでしょうか?
追記
固定ページに[scheduleHtml]と記載してfunctions.php内の処理を呼び出すことはできましたが、以前content-castschedule.phpが表示されることはなさそうでした
bin様
ブログを見ていただきありがとうございます。
ご質問の件、記事の通りに作成しているのであれば、
ショートコードは [scheduleshtml] となるはずです。(全て小文字)
function.php 内の関数 “schedulesHtml()” 、
get_template_part(‘content’, (‘castschedule’));
と記載されている箇所が「content-castschedule.php」の呼出箇所となります。
宜しくお願い致します。
非常に有益な記事有難うございます。参考にさせて頂いています。
一点、お伺いをさせて頂きたく存じます。
Twitterのアイコンを表示させてたいのですが、
「キャスト一覧の写真に個人の Twitter を連携、個人の詳細ページにコメントを挿入するのにキャスト管理ページでカスタムフィールドを利用しています。」
こちらの方法が解らず、恐れ入りますが、ご教示頂けますでしょうか。
Tom様
ブログを見ていただきありがとうございます。
ご質問の件、
キャスト管理画面にて、キャストの登録をする際にカスタムフィールドとして次の項目を追加してください。
・krc_pr
→コメント
・tw_id
→TwitterのID(@以降)
宜しくお願いします。
doradora様
ご返信が遅くなり、申し訳ございません。
店長コメント、Twitterの表記は無事表示することができました。ありがとうございます。
引き続いてですが、、、ランキングを表示するページの作成に苦戦しております。
恐れ入りますが、こちらについて、有償で修正アドバイス頂く事は可能でしょうか。
ご検討の程、お願い致します。
Tom
こんにちは初めまして、当方コクーンで利用できないかと思っております。
コードなど拝見して行ってみましたが上手くいかず。
カスタマイズを依頼できないかと思っております。
ご返信いただけたら嬉しいです。
よろしくお願いをいたします。
ゆう様
ブログを見ていただきありがとうございます。
カスタマイズのご依頼ということで、承知しました。
お話しを聞かせていただきたいので、メールにてご連絡致します。
宜しくお願い致します。
はじめまして!
こんにちは!あり難く拝見さて頂いております。PHP、CSSは全てコピーした物を使用しております。
wp-content/themes/lightning-child-sample/content-castlist.php on line 11 PHPのエラーが出たのですが原因はなんでしょうか? 答え合わせしたのですが特に間違えてる箇所はございませんでした ご教示頂けますでしょうか??
浩平様
コメントに気付かず遅くなりすみません。
ご質問の件ですが、おそらく Lightning が当時よりバージョンアップ(g2 → g3)しており、
対応方法が変わったことが原因ではないかと思います。
確か、Lightnign のメニュー(外観カスタマイズ)で g2 に戻す方法がありますのでお試しください。
g3 の対応については、私の方では出来ており、記事に書く予定ではあるのですが、時期について未定となっています。
ご了承ください。
以上です。
宜しくお願いします。
doradora様
現在krc-cast-managerにてHPを制作中ですが、スケジュールの登録ができなくなってしまいました。
大変恐縮ですが、有償にてweb面談等お時間を頂くことは可能でしょうか。
差し支えなければ、メール頂けますと幸甚です。
やぎ
やぎ様
ブログを見ていただきありがとうございます。
ご質問の件、メールをお送りしますのでよろしくお願いします。
doradora様
はじめまして。いつも参考にさせていただいており大変助かっております。ありがとうございます。
今回そのままの構成で作成させていただきましたが、キャスト個人ページのメイン画像(大きく表示される部分)が枠のサイズに合わず画像の左上部分のみ拡大表示されてしまっております。クリックすれば全部表示はされます。
サンプルページのように綺麗に収められず、何が原因か自分ではわかりませんでした。
もし宜しければご教示していただければ幸いです。よろしくお願いいたします。
KATO様
ブログを見ていただきありがとうございます。
ご質問の件、
元の画像サイズがとても大きいものなのではないでしょうか。
CSSで画像サイズ(幅または高さ)を指定し、object-fit プロパティでフィットさせたりするといいかと思います。
宜しくお願いします。
ご返信ありがとうございます。
サイズは色々と試しましたが関係なさそうでしたので、object-fitで試してみたいと思います。
ありがとうございました。