为了账号安全,请及时绑定邮箱和手机立即绑定

Woocommerce 产品/类别循环问题

Woocommerce 产品/类别循环问题

PHP
翻阅古今 2023-04-21 17:23:25
我安装了最新的 Woocommerce 和最新的 Wordpress。我已经安装了网格/列表切换。我的问题从这里开始。因为它将所有类别和产品更改为列表视图我想要网格视图中的类别和列表视图中的产品。所以我搜索并发现类别和产品在 template/loop/loop-start.php 上使用相同的开始和结束循环“>可以在那里更改它,但随后它会将所有内容更改为该类。现在我的解决方案是向此页面添加条件标签但这有点问题。见代码<?php/** * Product Loop Start * * This template can be overridden by copying it to yourtheme/woocommerce/loop/loop-start.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see         https://docs.woocommerce.com/document/template-structure/ * @package     WooCommerce/Templates * @version     3.3.0 */if ( ! defined( 'ABSPATH' ) ) {    exit;}?><?php if ( is_product_category() ) {  if ( is_shop() ) {    echo '<ul class="product-category1">';  } elseif ( is_product_category( array( 'cd', 'album' ) )) {    echo '<ul class="product-category2">';  } else {    echo '<ul class="products columns-' .esc_attr( wc_get_loop_prop( 'columns' ) );.' ">';  }} ?><!--<ul class="products columns-<?php //echo esc_attr( wc_get_loop_prop( 'columns' ) ); ?>" id="HELP">-->现在上面的代码有点像 if_shop 语句不起作用,但是 is_product_category 工作得很好,else 语句也不起作用有人可以为此指出正确的方向吗,几周来一直在寻找答案,但由于 Woocommerce 更改了很多代码,所以没有任何答案或太旧而无法使用。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

请记住将 woocommerce/template/loop/loop-start.php 和 loop-end.php 复制到你的 theme/woocommerce/loop/loop-start.php 和 loop-end.php


循环/loop-start.php


/*This is the main cat on homepage or shop page*/

if (is_shop()|| is_front_page()) {

/*this can be any thing you want it to be <ul><div>*/

echo '<div class="yourclass">';

/*this should be your sub categories 1 level down*/

else if ( is_product_category(array('cat1', 'cat2','cat3', 'cat4', 'cat5'))){

/*this can be any thing you want it to be <ul><div>*/

echo '<div class="yourclass">';

}

/*this should be your sub categories 2 level down*/

 else if ( is_product_category(array('subcat1','subcat2'))){

echo '<ul class="products" id="NORMAL">';

}

然后在loop-end.php


/*This is the main cat on homepage or shop page*/

    if (is_shop()|| is_front_page()) {

    /*this can be any thing you want it to be <ul><div>*/

    echo '</div>';

    } 

    /*this should be your sub categories 1 level down*/

    else if ( is_product_category(array('cat1', 'cat2','cat3', 'cat4', 'cat5'))){

    /*this can be any thing you want it to be <ul><div>*/

    echo '</div>';

    }

    /*this should be your sub categories 2 level down*/

     else if ( is_product_category(array('subcat1','subcat2'))){

    echo '</ul>';

    }

应该有更好的方法来做到这一点,但对我来说,这是我所能做的。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信