php - WooCommerce - 更改商店页面布局但保留 archive-product.php

标签 php wordpress woocommerce

我是 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的代码。这可以吗?有没有其他更安全的方法来实现这一目标? 任何帮助,将不胜感激。谢谢

最佳答案

看看 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 中。

关于php - WooCommerce - 更改商店页面布局但保留 archive-product.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30779659/

相关文章:

php - INSERT INTO mysql 时的唯一值

PHPUnit Mock 似乎没有调用公共(public)函数

javascript - 代码返回上次刷新之前的最新值而不是插入的最新值?

php - 具有层次结构的 Woocommerce 产品属性,如类别

php - 如何在 WooCommerce "My account"订单表中插入订单的前 3 个产品图像

php - 具有待定状态问题的 WP_Query 和 WooCommerce 订单

php - 上传的图片为空 - iOS AFNetworking PHP MySQL

wordpress - 如何为 WooCommerce 添加电子邮件验证功能

wordpress - 当通过 Polylang 插件更改语言时,有没有办法将所有查询参数保留在 URL 中?

php - #1062 - key '81057' 的重复条目 'PRIMARY'