有什么方法可以显示单个产品woocommerce_before_single_product_summary操作woocommerce商店页面
#1
是。有两种方法可以执行此操作, 具体取决于你实际要实现的目标:
- 你可以在主题(或希望是子主题)中覆盖WooCommerce商店页面模板(archive-product.php)以执行woocommerce_before_single_product_summary操作
- 你可以将正在寻找的功能添加到woocommerce_before_single_product_summary操作中, 并将其添加到在”商店”页面上触发的操作中
- 你可以创建一个执行woocommerce_before_single_product_summary操作的函数, 并将其挂接到Shop页面上的操作中(类似于选项1, 但不会覆盖Shop模板)-从理论上讲, 如果WooCommerce更新, 则将来会阻止更多工作他们的模板)
怎么做
- 在你的主题/子主题中创建一个名为woocommerce的文件夹, 然后将plugins / woocommerce / templates / content-product.php复制到该文件夹, 然后找出要放置woocommerce_before_single_product_summary操作的位置。确保你位于<?php?>标记内, 将其弹出到你想要的位置:do_action(‘woocommerce_before_single_product_summary’);
- 找到满足你需求的特定功能, 然后将其添加到”商店”页面上已触发的操作中。在你的主题/子主题的functions.php文件中(请使用子主题), 将其添加到<?php?>标记内:
add_action( 'woocommerce_before_shop_loop_item', 'specific_function_you_want' );
其中” woocommerce_before_shop_loop_item”是在”商店”页面上触发的第一个操作(你可以根据要放置功能的位置将其替换为content-product.php中的另一个操作, 而” specific_function_you_want”是当前已挂接的函数的名称放入你要复制的woocommerce_before_single_product_summary操作中。
- 同样, 在functions.php文件的<?php?>标记内添加以下内容:
add_action( 'woocommerce_before_shop_loop_item', 'do_before_product_summary');
function do_before_product_summary() {
do_action('woocommerce_before_single_product_summary');
}
优点缺点
- 最简单, 最快的方法来解决问题但是:请注意, 默认情况下, woocommerce_before_single_product_summary仅做两件事:显示产品图片并说该商品是否正在销售。这两个都已经显示在”商店”页面上。由于此方法仅执行woocommerce_before_single_product_summary操作, 因此你很可能在”商店”页面上重复了内容。可能不是解决此问题的最佳方法。
- 给你最大的粒度。我假设你可能正在寻找一些当前挂接到woocommerce_before_single_product_summary操作的特定功能, 然后在”商店”页面上执行此操作。如果是这种情况, 此方法将使你能够这样做, 而不必担心woocommerce_before_single_product_summary操作附带的任何其他功能(例如方法1中提到的重复产品映像)。但是, 你将需要找出特定功能的来源, 这需要进行一些挖掘。
- 不需要方法2中要求的挖掘, 但是与方法1一样, 将执行woocommerce_before_single_product_summary操作中涉及的所有操作。使用这种方法1的最大好处是, 当/如果WooCommerce将来更新其模板时(就像它们不时更新一样), 你将不必担心保持模板的最新更新。这并不总是一件大事, 但要记住这一点。
评论前必须登录!
注册