1

我尝试在 wordpress 网站上制作自己的搜索表单。得到我想要的结果是没有问题的,但是不能让 paginate_links 工作。

我测试了 WP_Query 的所有输入和输出参数,一切看起来都还可以。paginate_links 的输入是 775 个结果,给出 16 个页面和 50 个产品标题。

问题:所有页面都给出与第 1 页相同的结果。我都准备好了做什么:发布到 wordpress 论坛,但现在提示在 3 天。测试了所有参数。使用 add_hook 将 get_col reflect 合并到 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