将php参数作为arg问题的自定义查询分页

时间:2019-05-25 作者:wsoil

我创建了一个带有自定义查询的循环。这个查询包含一个php参数,我使用GET方法从url获取该参数。问题是分页(即使它在第一页计算正确的帖子数)工作不正常。我在第二页看到404错误。这是我的循环页面上的代码:

$cat = get_queried_object();
echo \'<h1 class="childcatdes">\'. $cat->name . \'</h1>\';
echo \'<p class="childcatdescr">\'. $cat->description . \'<br><br></p>\';
do_action( \'woocommerce_before_single_product\' );

$posts_per_page = 12;
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;


$product_args = array(
    \'post_type\' => \'product\',
    \'posts_per_page\' => $posts_per_page,
    \'paged\' => $paged,
    \'page\' => $paged,
    \'tax_query\' => array(
         \'relation\' => \'AND\',
        array(
          \'taxonomy\' => \'product_cat\',
          \'field\'    => \'name\',
          \'terms\'    => $cat->name,
        ),
        array(
          \'taxonomy\' => \'manufacturers\',
          \'field\'    => \'slug\',
          \'terms\'    => $_GET[\'filter_manufacturers\'],
          \'operator\' => \'IN\'
        )
    ),
    \'orderby\' => \'name\',
    \'order\' => \'ASC\',
);

$custom_query = new WP_Query( $product_args );

if($custom_query->have_posts()) {
    echo \'<ul\';
    while ($custom_query->have_posts() )  : $custom_query->the_post(); 
        echo \'<li>\';
            $link = get_the_permalink();

            echo \'<a href="\' . $link . \'">\' . get_the_title() . \'</a>\';

        echo \'</li>\';
    endwhile;


    echo \'</ul>\';
}
else {
    echo \'No post found.\';
}
?>
<nav class="pagination">
    <?php pagination_bar( $custom_query); ?>
</nav>  
我用这个代码来实现我的函数。函数pagination\\u bar的php文件

function pagination_bar( $custom_query) {
    $total_pages = $custom_query->max_num_pages;
    $big = 99999;
    if ($total_pages > 1){
        $current_page = max(1, get_query_var(\'paged\'));

        echo paginate_links(array(
            \'base\' => preg_replace(\'/\\?.*/\', \'/\', get_pagenum_link(1)) . \'%_%\',
           \'current\' => $current_page,
           \'format\' => \'page/%#%/\',
           \'total\' => $custom_query->max_num_pages,
           \'add_args\' => array(
               \'filter_manufacturers\' => $_GET[\'filter_manufacturers\'],
           )
        ));
    }
}
当我在product\\u args中不使用分类制造商时,所有这些都正常工作。

请给出建议

1 个回复
SO网友:wsoil

最后,我创建了一个具有名称制造商和同名属性的分类法。这可能会引起冲突(我没有发现更多!)。因此,我创建了一个名为brands的属性,并将其用于自定义查询。

相关推荐

带有自定义字段的GROUP BY的WP_QUERY

我需要在帖子中使用group by和一个自定义字段“eventMonth”,该字段的值为“April-2019”-“June-2019”。。(我从未将wp\\u查询与meta\\u查询数据一起使用过,所以…)。我在类别字段函数中有下一个查询和代码query_group_by_filter($groupby){ global $wpdb; return $wpdb->postmeta . \".meta_value=\'eventMonth\'\"; }:&#