我目前在一家电子商务网站上工作,遇到了一个问题。我的客户想要一个页面电子精品店,展示所有产品类别,然后是三个促销产品和一个“全部展示”按钮。
这个“全部显示”按钮应该显示商店包含的所有产品,并使用默认的woocommerce排序和分页。
首先,我不知道我做得对。到目前为止,我看到的是显示产品类别的页面,当我在该页面上单击“全部显示”按钮时,我会用GET
论点/?all=1
并展示产品。
<a class="product-category-view-all" href="?all=1"><?php _e(\'View all\'); ?></a>
I copied the idea from this post, 这是我的代码:
<div id="content" class="hfeed">
<h1><?php _e(\'The E-boutique\'); ?></h1>
<?php
if (isset($_GET[\'all\']))
{
$args = array(
\'post_type\' => \'product\',
\'orderby\' => $orderby,
);
$wp_query = new WP_Query($args);
?>
<?php do_action(\'woocommerce_before_shop_loop\'); // woocommerce sorting ?>
<div class="clear"></div>
<ul class="products-list">
<?php woocommerce_product_subcategories(); ?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<?php woocommerce_get_template_part(\'content\', \'product\'); ?>
<?php
endwhile; // end of the loop.
wp_reset_query();
?>
</ul>
<div class="clear"></div>
<?php do_action(\'woocommerce_after_shop_loop\'); // woocommerce pagination ?>
<?php
}
else
{
// Code to display the product categories with thumbnails.
}
?>
产品显示良好,可看到分拣选择。当我想更改排序时,页面会重新加载,但顺序没有更改,分页设置为每页3个产品,但不受尊重。(不显示分页按钮)。
我想补充一点,这是我第一个使用WordPress和WooCommerce的网站。
最合适的回答,由SO网友:HamzStramGram 整理而成
我没有完全解决我的问题。我的客户改变了主意,不再需要分类了。
但关于分页,我在查询中添加了一个新的参数,从而使其正常工作,下面是使其正常工作的代码:
<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'post_type\' => \'product\',
\'paged\' => $paged,
);
$wp_query = new WP_Query($args);
if (isset($_GET[\'all\']))
{
?>
<?php do_action(\'woocommerce_archive_description\'); ?>
<?php if (have_posts()) : ?>
<?php
// I don\'t want the sorting anymore
//do_action(\'woocommerce_before_shop_loop\');
?>
<ul class = "products-list">
<?php while (have_posts()) : the_post(); ?>
<?php woocommerce_get_template_part(\'content\', \'product\'); ?>
<?php endwhile; // end of the loop. ?>
</ul>
<?php
/* woocommerce pagination */
do_action(\'woocommerce_after_shop_loop\');
?>
<?php elseif (!woocommerce_product_subcategories(array(\'before\' => woocommerce_product_loop_start(false), \'after\' => woocommerce_product_loop_end(false)))) : ?>
<?php woocommerce_get_template(\'loop/no-products-found.php\'); ?>
<?php endif; ?>
<?php
}
else
{
// Code to display the product categories with thumbnails.
}
?>
The
$paged
变量帮助我通过get获取URL中传递的当前页面。
再一次,我不知道这是否是最好的方法。但它为我做了工作。
我希望它能帮助别人。