Php 电子商务中的分页
我使用这个短代码在页面上显示一个类别的产品。但是当我们使用它时,它并没有显示分页。因为我们的产品种类太多了 我们正在使用以下代码:Php 电子商务中的分页,php,mysql,woocommerce,Php,Mysql,Woocommerce,我使用这个短代码在页面上显示一个类别的产品。但是当我们使用它时,它并没有显示分页。因为我们的产品种类太多了 我们正在使用以下代码: [product\u category category=“snowpeak”per\u page=“12”columns=“4”orderby=“date”order=“desc”] 您可以在此处投票支持将此功能实现到WooCommerce短代码中: 否则,您可以创建自定义产品循环()并在WP_查询中添加自定义参数以进行分页: 例如 参考: 您可
[product\u category category=“snowpeak”per\u page=“12”columns=“4”orderby=“date”order=“desc”]
您可以在此处投票支持将此功能实现到WooCommerce短代码中:
否则,您可以创建自定义产品循环()并在WP_查询中添加自定义参数以进行分页:
例如
- 参考:
- 参考:
function custom_pagination() {
global $wp_query;
$big = 999999999;
$pages = paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?page=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'prev_next' => false,
'type' => 'array',
'prev_next' => TRUE,
'prev_text' => '← Previous',
'next_text' => 'Next →',
));
if (is_array($pages)) {
$current_page = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
echo '<ul class="pagination">';
foreach ($pages as $i => $page) {
if ($current_page == 1 && $i == 0) {
echo "<li class='active'>$page</li>";
} else {
if ($current_page != 1 && $current_page == $i) {
echo "<li class='active'>$page</li>";
} else {
echo "<li>$page</li>";
}
}
}
echo '</ul>';
}
}
函数自定义分页(){
全局$wp_查询;
$big=99999999;
$pages=paginate_链接(数组(
'base'=>str_replace($big,%#%',esc_url(get_pagenum_link($big)),
'格式'=>'?页面=%#%',
“当前”=>max(1,获取查询变量('paged'),
“总计”=>$wp\u查询->最大页数,
“上一步”=>错误,
'类型'=>'数组',
“上一步”=>正确,
“上一个文本”=>“&larr;上一个”,
“下一个文本”=>“下一个&rarr;”,
));
if(is_数组($pages)){
$current_page=(get_query_var('paged')==0)?1:get_query_var('paged');
echo';
foreach($i=>$page){
如果($current_page==1&&$i==0){
回显“- $page
”;
}否则{
如果($current_page!=1&&$current_page==i){
回显“- $page
”;
}否则{
回声“- $page
”;
}
}
}
回声“
”;
}
}
下一步是在post或product页面中调用函数,以执行分页作业
以wp_查询为例
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$wp_query = new WP_Query("category_name='prayer'&paged=$paged&posts_per_page=12");
?>
<?php if ( $wp_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<?php get_template_part('prayer-loop'); ?>
<?php endwhile; ?>
<!-- end of the loop -->
<div class="row" style="clear: both;">
<?php custom_pagination(); ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
如果您将引导添加到网站,此分页将非常有效。您可以在产品页面中使用与在发布页面中使用的相同的分页。
<ul class="products">
<?php
global $paged;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
'paged' => $paged
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
woocommerce_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
?>
<nav>
<ul>
<li><?php previous_posts_link( '« PREV', $loop->max_num_pages) ?></li>
<li><?php next_posts_link( 'NEXT »', $loop->max_num_pages) ?></li>
</ul>
</nav>
<?php wp_reset_postdata(); ?>
</ul><!--/.products-->
例如
在functions.php文件中添加以下代码
function custom_pagination() {
global $wp_query;
$big = 999999999;
$pages = paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?page=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'prev_next' => false,
'type' => 'array',
'prev_next' => TRUE,
'prev_text' => '← Previous',
'next_text' => 'Next →',
));
if (is_array($pages)) {
$current_page = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
echo '<ul class="pagination">';
foreach ($pages as $i => $page) {
if ($current_page == 1 && $i == 0) {
echo "<li class='active'>$page</li>";
} else {
if ($current_page != 1 && $current_page == $i) {
echo "<li class='active'>$page</li>";
} else {
echo "<li>$page</li>";
}
}
}
echo '</ul>';
}
}
函数自定义分页(){
全局$wp_查询;
$big=99999999;
$pages=paginate_链接(数组(
'base'=>str_replace($big,%#%',esc_url(get_pagenum_link($big)),
'格式'=>'?页面=%#%',
“当前”=>max(1,获取查询变量('paged'),
“总计”=>$wp\u查询->最大页数,
“上一步”=>错误,
'类型'=>'数组',
“上一步”=>正确,
“上一个文本”=>“&larr;上一个”,
“下一个文本”=>“下一个&rarr;”,
));
if(is_数组($pages)){
$current_page=(get_query_var('paged')==0)?1:get_query_var('paged');
echo';
foreach($i=>$page){
如果($current_page==1&&$i==0){
回显“- $page
”;
}否则{
如果($current_page!=1&&$current_page==i){
回显“- $page
”;
}否则{
回声“- $page
”;
}
}
}
回声“
”;
}
}
下一步是在post或product页面中调用函数,以执行分页作业
以wp_查询为例
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$wp_query = new WP_Query("category_name='prayer'&paged=$paged&posts_per_page=12");
?>
<?php if ( $wp_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
<?php get_template_part('prayer-loop'); ?>
<?php endwhile; ?>
<!-- end of the loop -->
<div class="row" style="clear: both;">
<?php custom_pagination(); ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
如果将引导添加到网站中,此分页将非常有效。
<ul class="products">
<?php
global $paged;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
'paged' => $paged
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
woocommerce_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
?>
<nav>
<ul>
<li><?php previous_posts_link( '« PREV', $loop->max_num_pages) ?></li>
<li><?php next_posts_link( 'NEXT »', $loop->max_num_pages) ?></li>
</ul>
</nav>
<?php wp_reset_postdata(); ?>
</ul><!--/.products-->
您可以试试这个
[products per_page="4" columns="2" paginate="true"]
你可以试试这个
[products per_page="4" columns="2" paginate="true"]
此注释写在woocommerce短代码文档上。请注意:'per_page'shortcode参数将确定页面上显示的产品数量。这不会将分页添加到短代码。您已导入woopages?此说明写在woocommerce短代码文档上。请注意:'per_page'shortcode参数将确定页面上显示的产品数量。这不会将分页添加到快捷码。您已导入woopages?对于我来说,检索名为“paged”的变量时:$paged=(get_query_var('paged'))?获取查询变量('paged'):1;干得好!这为我解决了这个问题,因为我在检索名为'paged'的变量时:$paged=(get_query_var('paged'))?获取查询变量('paged'):1;干得好!这为meWorks修复了它,但您需要将其与限制一起使用,例如:[products limit=“12”paginate=“true”]有效,但您需要将其与限制一起使用,例如:[products limit=“12”paginate=“true”]