【问题标题】:WooCommerce - Change the shop page layout but keep the archive-product.phpWooCommerce - 更改商店页面布局但保留 archive-product.php
【发布时间】:2015-06-11 11:35:00
【问题描述】:

我是 WooCommerce 的新手,我正在尝试使用我从头开始创建的自定义主题来建立一个商店。主页是一个静态页面(自定义模板),仅提供有关商店的详细信息。我在我的主题文件夹中创建了一个名为 woocommerce 的文件夹并复制了模板文件。所以,我想保留archive-product.php,但我需要更改基本商店页面的布局。我希望它显示产品的类别和子类别以及一些没有价格的特色产品并添加到购物车中。你建议哪种方式? 我想到了一些目前有效的方法,但我不知道它以后是否会引起任何问题。我像这样编辑了archive-product.php:

<?php 
$shop_url = "$_SERVER[REQUEST_URI]";
$shop_end = "/shop/";
function endsWith($haystack, $needle) {
    $length = strlen($needle);
    if ($length == 0) {
        return true;
    }
    return (substr($haystack, -$length) === $needle);
}
if (!endsWith($shop_url, $shop_end)) { 
?> 
    archive-product.php stuff 
<?php } else { ?>
    custom shop basic page stuff
<?php } ?>

我检查url是否以'/shop/'结尾...所以根据url使用archive-product.php的代码。这行不行?有没有其他更安全的方法来实现这一目标? 任何帮助,将不胜感激。谢谢

【问题讨论】:

  • WooCommerce 提供is_shop() 功能来检查当前页面是否为商店页面。

标签: php wordpress woocommerce


【解决方案1】:

查看taxonomy-product_cat.phptaxonomy-product_tag.php 模板,您会发现它们都调用archive-product.php 模板。

wc_get_template( 'archive-product.php' );

因此,如果您希望更改商店存档,但分类存档,您需要将 archive-product.php 复制到另一个文件...例如:archive-product-alt.php 并更改分类模板改为调用此文件。

wc_get_template( 'archive-product-alt.php' );

或者,或者,您可以将archive-product.php 的内容复制到taxonomy-product_cat.php

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多