Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 电子商务中的分页_Php_Mysql_Woocommerce - Fatal编程技术网

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_查询中添加自定义参数以进行分页:

例如

  • 参考:

您可以投票支持将此功能实现到WooCommerce短代码中:

否则,您可以创建自定义产品循环()并在WP_查询中添加自定义参数以进行分页:

例如

  • 参考:

您可以在产品页面中使用与Post页面相同的分页。 例如

在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( '&laquo; PREV', $loop->max_num_pages) ?></li> 
            <li><?php next_posts_link( 'NEXT &raquo;', $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' => '&larr; Previous',
        'next_text' => 'Next &rarr;',
            ));
    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( '&laquo; PREV', $loop->max_num_pages) ?></li> 
                <li><?php next_posts_link( 'NEXT &raquo;', $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”]