解決したいことは、WordPressの検索結果ページの一覧で、ページナビゲーションは、正常に切り替わるのですが、記事一覧が1ページ目の10件から変わりません。
記事の投稿は、カスタム投稿にておこなっております。
ご教授いただけますでしょうか。
//function.php
function my_posts_per_page($query) { if( is_search() ) { $query->set( 'post_type', array('shop') ); $query->set( 'posts_per_page', '10' ); //$query->set( 'paged', 'get_query_var("paged")' ); } if ( $query->is_archive('shop') ) { $query->set( 'posts_per_page', '10' ); } } add_action( 'pre_get_posts', 'my_posts_per_page' ); function my_posy_search($search) { if(is_search()) { $search .= " AND (post_type='shop')"; } return $search; } add_filter('posts_search', 'my_posy_search'); function custom_search($search, $wp_query ) { if ( isset($wp_query->query['s']) ) $wp_query->is_search = true; return $search; } add_filter('posts_search','custom_search', 10, 2);
//search.php
<?php $s = $_GET['s']; $catarea = $_GET['areacat']; $catgenre = $_GET['genrecat']; $post_tag = $_GET['post_tag']; $price = $_GET['price']; $age = $_GET['age']; $for = $_GET['for']; if($for){ $metaquerysp[] = array( 'key'=>'for', 'value'=> $for, 'compare' => 'LIKE' ); } if($age){ $metaquerysp[] = array( 'key'=>'age', 'value'=> $age, 'compare' => 'LIKE' ); } if($price){ $metaquerysp[] = array( 'key'=>'price', 'value'=> $price, 'compare' => 'LIKE' ); } if($post_tag){ $taxquerysp[] = array( 'taxonomy'=>'shoptag', 'terms'=> $post_tag, 'include_children'=>false, 'field'=>'slug', 'operator'=>'AND' ); } if($catarea){ $taxquerysp[] = array( 'taxonomy'=>'areacat', 'terms'=> $catarea, 'include_children'=>false, 'field'=>'slug', 'operator'=>'AND' ); } if($catgenre){ $taxquerysp[] = array( 'taxonomy'=>'genrecat', 'terms'=> $catgenre, 'include_children'=>false, 'field'=>'slug', 'operator'=>'AND' ); } ?> <?php query_posts( array( 'meta_query' => $metaquerysp, 'tax_query' => $taxquerysp, 's' => $s, ) ); ?> <section class="shop-list-area"> <div class="search-header"> <div class="inner"> <h2 class="search-ttl">Make a New Search</h2> <p class="pagenavi-ttl"> <?/*php if ( function_exists( "pagination" ) ) { pagination( $additional_loop->max_num_pages ); } */ ?><?/*php echo $wp_query->found_posts; */?> Results</p> </div> </div> <div class="inner"> <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); get_template_part( 'template-parts/content', 'list' ); endwhile; wp_pagenavi(); my_result_count(); // ここら辺で表示します else : endif; ?> <?php //Pagenation if (function_exists("pagination")) { pagination($additional_loop->max_num_pages); } ?> </div> </section> <?php get_footer(); コード
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/03 09:38
2018/06/03 09:45
退会済みユーザー
2018/06/03 12:42
退会済みユーザー
2018/06/03 18:12