今現在カスタム投稿の最新の月の投稿を全て表示させている一覧ページがあるのですがボタンを押した時にajax最新の投稿の1ヶ月前の投稿を全て表示させようと思っているのですがボタンを押すと11件分の月の投稿数分が表示されてしまいます。ちなみに直近の6月分の投稿数が22件、5月分が11件となります。
恐らくLIMITの取得位置を下記にある$current_monthの初日からにすれば解決すると思うのですが
どなたかご教授の方宜しくお願い致します。
php
1<?php 2 3 require_once("../../../wp-config.php"); 4 5 //最新月から一つ前の投稿数を取得 6 $today = $_POST['today']; 7 $this_year = $_POST['year']; 8 $current_month = $_POST['current_month'];//次呼び出される月 9 $first_day = date('1');//今現在の月の初日 10 $last_day = date('t');//今現在の月の末日 11 12 13 //最新月前の投稿数を取得 14 $mydata_past = get_posts( array( 15 'order' => 'ASC', 16 'post_type' => 'ourlife', 17 'orderby' => 'date', 18 'posts_per_page' => -1, 19 'date_query' => array( 20 array( 21 'after' => array( 22 'year' => $this_year, 23 'month' => $current_month, 24 'day' => $first_day, 25 ), 26 'before' => array( 27 'year' => $this_year, 28 'month' => $current_month, 29 'day' => $last_day, 30 ), 31 'inclusive' => true, 32 ), 33 ), 34 )); 35 36 //最新月の投稿数を取得 37 $mydata_currnet = get_posts( array( 38 'order' => 'ASC', 39 'post_type' => 'ourlife', 40 'orderby' => 'date', 41 'posts_per_page' => -1, 42 'date_query' => array( 43 array( 44 'after' => array( 45 'year' => $this_year, 46 'month' => $current_month +1, 47 'day' => $first_day, 48 ), 49 'before' => array( 50 'year' => $this_year, 51 'month' => $current_month +1, 52 'day' => $last_day, 53 ), 54 'inclusive' => true, 55 ), 56 ), 57 )); 58 59 $current_posts = count($mydata_current);//今現在表示されている月の投稿数 60 $past_posts = count($mydata_past);//最新の投稿から1ヶ月前の投稿数 61 62 $sql = "SELECT 63 $wpdb->posts.ID, 64 $wpdb->posts.post_title, 65 $wpdb->posts.post_date, 66 $wpdb->posts.post_content 67 FROM 68 $wpdb->posts 69 WHERE 70 $wpdb->posts.post_type = 'ourlife' AND $wpdb->posts.post_status = 'publish' 71 ORDER BY 72 $wpdb->posts.post_date DESC 73 LIMIT $current_posts,$past_posts"; 74 75 76 77 $results = $wpdb->get_results($sql); 78 79 80 $html = ""; 81 82 83 foreach ($results as $result) { 84 $html .= '<a href="'.get_permalink($result->ID).'" class="btn blue ourlife_slide_con fl">'; 85 $html .= '<div class="ourlife_wrap fl">'; 86 $html .= '<div>'.get_the_post_thumbnail($result->ID,'full', array('class' => 'ourlife_image')). '</div>'; 87 $html .= '<div class="member_info_wrap"></div>'; 88 $html .= '<div class="center"><div class="member_name text_white">'.get_post_time('m/d','false',$result->ID).'</div></div>'; 89 $html .= '</div>'; 90 $html .= '</a>'; 91 } 92 93 $returnObj = array(); 94 $returnObj = array( 95 'noDataFlg' => $noDataFlg, 96 'html' => $html 97 ); 98 $returnObj = json_encode($returnObj); 99 100 echo $returnObj; 101?> 102
javascript
1var href = today = new Date(), 2 current_year = today.getFullYear(), 3 current_month = today.getMonth() + 1;//現在の日付 4 5 6//more.phpにデータを送る 7jQuery(".slide_arrrow").on("click", function() { 8 9 current_month--; 10 console.log(current_month); 11 jQuery("#more").html('<img class="center" src="http://localhost/wp-content/themes/テーマ名/images/ajax-loader.gif" />'); 12 13 jQuery.ajax({ 14 type: 'post', 15 url: 'http://localhost/wp-content/themes/テーマ名/more.php', 16 data: { 17 'today':today, 18 'year':current_year, 19 'current_month':current_month 20 }, 21 success: function(data) { 22 data = JSON.parse(data); 23 jQuery(".our_lives").append(data['html']); 24 } 25 }); 26 return false; 27 }); 28 29});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/12 22:35
2016/06/13 12:26