对于所有页面,WP_Query分页返回1
问题描述:
我正在使用WPeCommerce插件的网站上工作。分页已打破,它显示所有页面上的首页产品。起初,循环没有使用自定义查询,因此我添加了一个带有分页参数的文件,以查看它是否有帮助。但是当我打印查询时,paged总是返回1,即使我将它硬编码为像2这样的值。有人知道为什么会发生这种情况吗?对于所有页面,WP_Query分页返回1
<?php
$prodArgs = array(
'post_type' => 'wpsc-product',
'wpsc_product_category' => 'shoes',
'posts_per_page' => 12,
);
$prodArgs['paged'] = get_query_var('paged') ? get_query_var('paged') : 1;
$prodQuery = new WP_Query($prodArgs);
$temp_query = $wp_query;
$wp_query = NULL;
$wp_query = $prodQuery;
$count = 1;
?>
<div class="hidden">
<pre>
<?php print_r($prodQuery); ?>
</pre>
</div>
答
您应该在wp查询中添加paged
参数。
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$prodArgs = array(
'post_type' => 'wpsc-product',
'wpsc_product_category' => 'shoes',
'posts_per_page' => 12,
'paged' => $paged
);
$prodQuery = new WP_Query($prodArgs);
答
我找到了解决方案。
<?php
$wp_query = array(
'post_type' => 'wpsc-product',
'wpsc_product_category' => $thd_category->slug,
'posts_per_page' => 12,
'paged' => get_query_var('page')
);
query_posts($wp_query);
$count = 1;
?>
<?php if ($wp_query->have_posts()) while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
使用'var_dump'来调试'get_query_var'的值。 PHP的类型杂耍和布尔评估可能会有些棘手。 – Joshua