WooCommerce自定义查询和分页:未找到错误

时间:2013-03-15 作者:ZK_

我遇到以下工件代码问题:

global $wp_query;

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$filter_args[\'paged\'] = $paged;
$filter_args[\'posts_per_page\'] = 2;

$args = array_merge( $wp_query->query_vars, $filter_args );
query_posts( $args );
此代码位于archive-prodcut.php 文件,位于my theme/woocommerce文件夹中。

它正常工作,以便显示前2个产品,并在底部显示WooCommerce分页。

do_action( \'woocommerce_after_shop_loop\' );
然而,当我点击每个页面时,我会得到一个“未找到”错误。当我尝试在存档产品的顶部放置回声时。php文件,我意识到它不会加载。url看起来像www.site。com/产品类别/类别名称/页码/2

提前感谢!

1 个回复
最合适的回答,由SO网友:ellenmva 整理而成

这与posts\\u per\\u page为2以及后端WordPress设置为更大的值有关。如果您将WordPress设置设置为2,它将起作用。但您可能不希望所有页面都有两篇帖子。在这种情况下,您可以使用此答案中的代码更改查询,Pagination Throws 404 只针对归档页面。

下面是用于放置主题函数的代码。php文件。

if( !is_admin() ){  
add_action( \'pre_get_posts\',  \'set_per_page\'  );
}
function set_per_page( $query ) {
    global $wp_the_query;
    if($query->is_post_type_archive(\'product\')&&($query === $wp_the_query)){
    $query->set( \'posts_per_page\', 1);
    }
  return $query;
}
这将在运行查询之前更改posts\\u per\\u页面。然后,当您收到帖子时,它会使用动态变量posts\\u per\\u page进行查询。因此,如果这个数字是3,那么您将得到每页3个产品,并且不会出现404错误。

结束

相关推荐

Pagination on a page

我有一个页面,其中显示了大量自定义帖子类型的帖子,就像博客显示了大量帖子一样。我正在使用WP_Query 并且正确输出分页链接,但是当我导航到第2页url时(/my_page/page/2) 我得到了404,这并不奇怪,因为我认为WordPress认为我需要子页面。。。但我不想,我想要那个值作为分页值。有没有办法在特定页面上启用此功能?