如何无需插件自定义WooCommerce商店页面
无插件自定义WooCommerce shop页面相关问题
- 需求为完全自定义WooCommerce的
shop页面,暂未找到无需借助插件的实现方案。 - 曾考虑不在WooCommerce后台指定
shop页面,直接使用绑定自定义模板的普通页面作为商店页,但该方案需要配置默认shop页面到新商店页的重定向规则。 - 最初以为可以和覆盖其他模板逻辑一致,将对应模板文件复制到主题目录(例如
woocommerce/store.php)即可完成重写,查看WooCommerce插件源码后发现,shop页面是由loop文件夹下的整套模板(路径为woocommerce/templates/loop)渲染生成的。 - 也可选择创建自定义模板(例如
archive-shop.php)并按需配置重定向实现需求,但希望了解是否存在更优的无插件实现方案。
针对@hhh的问题补充
- 已将
archive-product.php添加到主题目录下,路径为woocommerce/archive-product.php,文件内容直接复制自WooCommerce插件的原模板文件。 - 初次修改时将页头标题修改为测试内容,对应代码如下:
<h1 class="woocommerce-products-header__title page-title">THIS IS A TEST</h1>
- 后续进一步精简文件,仅保留上述h1标签输出做测试,但该模板始终无法覆盖插件的默认模板,测试代码如下:
<?php /** * The Template for displaying product archives, including the main shop page which is a post type archive * * This template can be overridden by copying it to yourtheme/woocommerce/archive-product.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. * * @package WooCommerce\Templates * @version 3.4.0 */ defined( 'ABSPATH' ) || exit; get_header( 'shop' ); do_action( 'woocommerce_before_main_content' ); ?> <header class="woocommerce-products-header"> <h1 class="woocommerce-products-header__title page-title">THIS IS A TEST</h1> </header> <?php get_footer( 'shop' );
- 相关测试截图:


内容的提问来源于stack exchange,提问作者Freddy
相关产品推荐
相关产品推荐

