1

wordpressサイトで独自の検索フォームを作ろうとしています。私が望む結果を得るには問題はありませんが、paginate_links を機能させることはできません。

WP_Query の入力パラメータと出力パラメータをすべてテストしましたが、すべて問題ないようです。paginate_links への入力は 775 件の結果で、16 ページに 50 件の製品タイトルが含まれています。

問題: すべてのページでページ 1 と同じ結果が得られます。すべてのパラメータをテストしました。add_hook を使用して、get_col の反映を WP_Query にマージしました。パーマリンクとページングを確認しています。

 global $wpdb;
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 if ($paged == 1) {
   $Limit = "50";
 } else {
   $FirstPage = ($paged-1)*50;
   $LastPage = $paged*50;
   $Limit =  $FirstPage.",".$LastPage;
 }

 $term = get_term_by('name', $_REQUEST["product_cat"], 'product_cat');
 //   echo "id". $term->term_id;


$mypostids = $wpdb->get_col("select * from $wpdb->posts, $wpdb->term_relationships
                                where $wpdb->posts.post_title LIKE       '".$_REQUEST["start_letter"]."%'
                                AND $wpdb->posts.post_type='product'
                                AND $wpdb->term_relationships.term_taxonomy_id=".$term->term_id."
                                AND $wpdb->term_relationships.object_id=$wpdb->posts.ID
                                AND $wpdb->posts.post_excerpt LIKE '%".$_REQUEST["product_tag"]."%'
                                ORDER BY $wpdb->posts.post_title asc ");


$argssearch = array('post__in'=> $mypostids,
                    'post_type'=>'product',
                  'orderby'=>'title',
                    'order'=>'asc',
                    'posts_per_page'=>50,
                    'product_tag'=>urldecode( $_REQUEST["product_tag"]),
                    'product_cat'=>urldecode( $_REQUEST["product_cat"]),
                    'paged=' => $paged);



$querysearch = new WP_Query($argssearch);
echo "<br/>-".$querysearch->found_posts."-".$paged."<br/>" ;
$big = 999999999; // need an unlikely integer

echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '',
'current' => max( 1, get_query_var('paged') ),
'total' => $querysearch->max_num_pages,
'add_args' => array('start_letter'=>$_REQUEST["start_letter"],
                    'product_tag'=>urlencode ($_REQUEST["product_tag"]),
                    'product_cat'=>urlencode ($_REQUEST["product_cat"]),
                    'ZOEK' => 'Zoek'
   ) ));
4

0 に答える 0