我遇到以下工件代码问题:
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
提前感谢!
最合适的回答,由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错误。