我只需要打破特定页面上的循环(wordpress / woocommerce)

时间:2014-11-12 16:01:49

标签: php wordpress woocommerce

有人会关心帮我在WooCommerce(Wordpress插件)商店页面禁用循环吗?

我使用了短代码来填充我需要的产品类别的页面,所以现在我需要阻止WooCommerce在我的内容下面显示任何内容(WooCommerce正在从循环加载产品但我不希望它)。

<?php woocommerce_product_loop_start(); ?>
    <?php woocommerce_product_subcategories(); ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php wc_get_template_part( 'content', 'product' ); ?>
    <?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>

^在那里我需要实现if(is_shop())在/ shop页面上什么都不显示,然后ifif显示上面的代码,这样子类别页面和产品档案就不会破坏。

我会非常感谢任何帮助...

2 个答案:

答案 0 :(得分:1)

您需要使用is_shop()检查您是否在商店页面上。有关详细信息,请参阅WooCommerce Docs on Conditional Tags

<?php while ( have_posts() && !is_shop() ) : the_post(); ?>

我不完全明白你是否可以完全摆脱商店页面上发布的代码......但如果你是,你可以将整个事物包装成条件:

<?php if ( !is_shop() ) : ?>
<?php woocommerce_product_loop_start(); ?>
    <?php woocommerce_product_subcategories(); ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <?php wc_get_template_part( 'content', 'product' ); ?>
    <?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php endif; ?>

答案 1 :(得分:-1)

如何从商店页面中删除排序顺序,产品/类别循环和分页,以便通过页面编辑器仅使用短代码实现您自己的内容。

产品archive.php:

<?php if ( !is_shop() ) : ?>
    <?php
    /**
    * woocommerce_before_shop_loop hook
    *
    * @hooked woocommerce_result_count - 20
    * @hooked woocommerce_catalog_ordering - 30
    */
    do_action( 'woocommerce_before_shop_loop' );
    ?>

    <?php woocommerce_product_loop_start(); ?>
        <?php woocommerce_product_subcategories(); ?>
            <?php while ( have_posts() ) : the_post(); ?>
        <?php wc_get_template_part( 'content', 'product' ); ?>
        <?php endwhile; // end of the loop. ?>
    <?php woocommerce_product_loop_end(); ?>

    <?php
    /**
    * woocommerce_after_shop_loop hook
    *
    * @hooked woocommerce_pagination - 10
    */
    do_action( 'woocommerce_after_shop_loop' );
    ?>
<?php endif; ?>