状況
WPの有料テーマのカスタマイズで、TCDのAMOREを使用しています。
投稿一覧では「もっと記事を見る」で記事がさらに読み込まれるようになっています。
https://demo.tcd-theme.com/tcd028/?page_id=311
「work」というカスタム投稿タイプを追加しarchive.phpで一覧を表示させているのですが、
「work」の投稿一覧ページでこの「もっと記事を見る」をクリックすると、さらに現れる記事がデフォルトのpost(お知らせ)のものになっています。
該当コード
05/31現在、JSを条件分岐させて、functions.phpのactionをもう一つ作ることでworkの一覧ページでは解決することができました。
未だ、ターム一覧ページではPOSTのものが出てしまう状況です。
$cat_idの部分をtermに出来れば解決かと思うのですが、上手くいっておりません。
06/01、サポートに問い合わせたところ、カスタム投稿を想定した作りになっていないということでした。
引き続き、お力を貸していただければと思います。
よろしくおねがいします。
▼ 子テーマfunctions.php
php
1add_action( 'wp_ajax_nopriv_load-filter-work', 'prefix_load_cat_posts_work' ); 2add_action( 'wp_ajax_load-filter-work', 'prefix_load_cat_posts_work' ); 3function prefix_load_cat_posts_work () { 4 $cat_id = $_POST['term']; 5 $paged = $_POST['paged']; 6 7 $options = get_desing_plus_option(); 8 9 $search = array( 10 'post_type' => 'work', 11 'paged' => $paged, 12 'posts_per_page' => get_option('posts_per_page'), 13 'order' => 'DESC', 14 'post_status' => array('publish') 15 ); 16 17 if($cat_id) $search['term'] = $cat_id; 18 19 $posts = new WP_Query($search); 20 21 ob_start(); 22 23// echo "<div class='ajax-page-separator mb40'><span>PAGE $paged</span></div>"; 24 echo "<div class='row mb40' style='padding-right:15px'>"; 25 26 $imageFullWidth = true; 27 $x = 2; 28 $counter = -1; 29 if ( $posts->have_posts() ) : ?> 30 31 <?php while ( $posts->have_posts() ) : $posts->the_post(); 32 if($posts->current_post == 0 && 2 == 4){ continue; }; 33 $counter++; 34 if($counter==0 || $counter%3 !=0){}else{ echo '</div><div class="row mb40" style="padding-right:15px">'; }; 35 $x++; 36 if($x % 3) : ?> 37 <div style="display:none" class="fade-me-in col-sm-38 col-sm-offset-3"> 38 <div class="row"> 39 <article data-paged="<?php echo $paged + 1; ?>" id="post-<?php the_ID(); ?>" <?php post_class('paged'); ?>> 40 <div class='col-sm-120 col-xs-60' style='padding-right:0px'> 41 <a href="<?php the_permalink() ?>"><div class="thumb"><?php if ( has_post_thumbnail()) { the_post_thumbnail('size1'); } else { echo '<img src="'; bloginfo('template_url'); echo '/img/common/no_image2.gif" alt="" title="">'; }; ?></div></a> 42 </div> 43 <div class='col-sm-120 col-xs-60 mt10'> 44 <?php if ($options['show_date']) { echo "<span class='fa fa-clock-o'></span><span class='blog-list-timestamp romaji'> " . get_the_date('Y') . '.' . get_the_date('m') . '.' . get_post_time('j') . "</span> ";}; ?> 45 <?php if ($options['show_category']) { ?><span class="cate"><?php the_category(', '); ?></span><?php }; ?> 46 <h4 class='blog-list-title'><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h4> 47 <p class="blog-list-body"><a href="<?php the_permalink() ?>"><?php if(has_excerpt()){ the_excerpt(); }else{ new_excerpt(40); }; ?></a></p> 48 </div> 49 </article><!-- #post-## --> 50 </div> 51 </div> 52 <?php else : ?> 53 <div style="display:none" class="fade-me-in col-sm-38"> 54 <div class="row"> 55 <article data-paged="<?php echo $paged + 1; ?>" id="post-<?php the_ID(); ?>" <?php post_class('paged'); ?>> 56 <div class='col-sm-120 col-xs-60' style='padding-right:0px'> 57 <a href="<?php the_permalink() ?>"><div class="thumb"><?php if ( has_post_thumbnail()) { the_post_thumbnail('size1'); } else { echo '<img src="'; bloginfo('template_url'); echo '/img/common/no_image2.gif" alt="" title="">'; }; ?></div></a> 58 </div> 59 <div class='col-sm-120 col-xs-60 mt10'> 60 <?php if ($options['show_date']) { echo "<span class='fa fa-clock-o'></span><span class='blog-list-timestamp romaji'> " . get_the_date('Y') . '.' . get_the_date('m') . '.' . get_post_time('j') . "</span> ";}; ?> 61 <?php if ($options['show_category']) { ?><span class="cate"><?php the_category(', '); ?></span><?php }; ?> 62 <h4 class='blog-list-title'><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h4> 63 <p class="blog-list-body"><a href="<?php the_permalink() ?>"><?php if(has_excerpt()){ the_excerpt(); }else{ new_excerpt(40); }; ?></a></p> 64 </div> 65 </article><!-- #post-## --> 66 </div> 67 </div> 68 <?php endif ?> 69 <?php endwhile; wp_reset_query(); 70 endif; 71 echo "</div>"; 72 73 $response = ob_get_contents(); 74 ob_end_clean(); 75 76 echo $response; 77 die(1); 78} 79
▼ 子テーマfooter.php
JS
1<?php if(is_post_type_archive('work') || is_tax('cat_work') ) : ?> 2var canLoad = true 3 4function page_ajax_get_work(){ 5 var page = jQuery('.paged').last().attr('data-paged') || 2; 6 var cat = <?php echo $cat_id; ?>; 7 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>'; 8 9 canLoad = false 10 11 jQuery.ajax({ 12 type: 'POST', 13 url: ajaxurl, 14 data: {"action": "load-filter-work", 'term': cat, paged:page }, 15 success: function(response) { 16 if(response.length > 100){ 17 var id = page - 1; 18 id.toString(); 19 jQuery("#infiniscroll").html(jQuery("#infiniscroll").html() + response); 20 } else { 21 jQuery("#pagerlink").html("最終ページ") 22 jQuery("#pagerbutton").attr("disabled", "disabled") 23 } 24 25 setTimeout(function(){ canLoad = true }, 2000) 26 } 27 }) 28} 29 30<?php else : ?> 31var canLoad = true 32 33function page_ajax_get(){ 34 var page = jQuery('.paged').last().attr('data-paged') || 2; 35 var cat = <?php echo $cat_id; ?>; 36 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>'; 37 38 canLoad = false 39 40 jQuery.ajax({ 41 type: 'POST', 42 url: ajaxurl, 43 data: {"action": "load-filter", cat: cat, paged:page }, 44 success: function(response) { 45 if(response.length > 100){ 46 var id = page - 1; 47 id.toString(); 48 jQuery("#infiniscroll").html(jQuery("#infiniscroll").html() + response); 49 } else { 50 jQuery("#pagerlink").html("最終ページ") 51 jQuery("#pagerbutton").attr("disabled", "disabled") 52 } 53 54 setTimeout(function(){ canLoad = true }, 2000) 55 } 56 }) 57} 58<?php endif; ?> 59
回答1件
あなたの回答
tips
プレビュー