独自テーブルから出力したデーターをソートし件数を制御
-
いつもお世話になっております。
プラグインの独自テーブルから出力した内容を全て取得しソートした内容を、件数で制御して1ページに表示する件数を指定したいと思っています。
その際にページャーを表示させたいのですが、件数指定のやり方が色々やったのですが分かりません。現在のコードは
function outschedule($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; //配列にして返す } function schedulesHtml() { //ショートコードの中身 $day = isset($_GET["works"]) ? $_GET['works'] : date_i18n("Y-m-d"); $works = outschedule($day); $len = 6; //+1 $week = array("日", "月", "火", "水", "木", "金", "土"); $w = date('w', strtotime($day)); ob_start(); echo '<nav class="attendance-calendar clearfix"><ul>'; for ($i = 0; $i <= $len; $i++) { $y = date('D', strtotime('+'.$i.' day')); if ( date_i18n('Y-m-d', strtotime('+'.$i.' day')) == $day ) $y = 'target'; echo '<li class="' . mb_strtolower($y) . '"><a href="' . home_url( '/' ) . '/girl-attendance/?works=' . date_i18n('Y-m-d', strtotime('+'.$i.' day')) . '">' . strtoupper(date('n/j(D)', strtotime('+'.$i.' day'))) . '</a></li>'; } echo '</ul></nav>'; if (!$works) { //予定がない場合 echo '<p class="attendance-message">' . date('n/j', strtotime($day)); echo '(' . $week[$w] . ')'; echo 'の出勤予定はございません。</p>'; } else if ( $works !='rest' ) { echo '<div class="clearfix">'; //postid順に配列に入っているのでs_order順にした配列を作る $works_array = array(); foreach($works as $id => $val){ $works_array[$val["s_order"]] = $id; } ksort($works_array); foreach ($works_array as $rder => $id){ $paged = ( get_query_var('page') ) ? get_query_var('page') : 1; $args=array( 'post_type' => 'krc_cast', 'post__in' => array($id), 'posts_per_page' => 6, //取得記事件数 'paged' => $paged ); $wp_query = new WP_Query($args); while ($wp_query->have_posts()): $wp_query->the_post(); $counter++; if ($counter <= 1){ require(get_template_directory() . "/content-cast-first.php"); }else{ require(get_template_directory() . "/content-cast.php"); }endwhile; //wp_reset_query(); } echo '</div>'; echo '<div class="pagination">'; // ページングを表示 if (function_exists('wp_pagenavi')) { wp_pagenavi(); } // ループ処理のデータをリセット wp_reset_query(); echo '</div>'; } else { //休み echo '<p class="attendance-message">申し訳ありません。' . date('n/j', strtotime($day)); echo '(' . $week[$w] . ')'; echo 'の出勤予定者はおりません。</P>'; } return ob_get_clean(); } add_shortcode('scheduleshtml', 'schedulesHtml');
今は専用の固定ページにてショートコードで表示させています。
固定ページにて6件表示させて、6件以上ならページャーを表示。
ページャーはWP-PageNaviを使用しています。さらに出力されたデーターをHOMEにて3件のみ表示させたいので、全て表示されてしまうのを制御したいです。
ソートの仕方や出力の仕方があまり理解しきれていなく、行き詰まってしまいました。ご教授お願い致します。
4件の返信を表示中 - 1 - 4件目 (全4件中)
4件の返信を表示中 - 1 - 4件目 (全4件中)
- トピック「独自テーブルから出力したデーターをソートし件数を制御」には新たに返信することはできません。