如何在Woocommerce中的商店页面中显示单个产品do_action

【如何在Woocommerce中的商店页面中显示单个产品do_action】有什么方法可以显示单个产品woocommerce_before_single_product_summary操作woocommerce商店页面
#1是。有两种方法可以执行此操作, 具体取决于你实际要实现的目标:

  1. 你可以在主题(或希望是子主题)中覆盖WooCommerce商店页面模板(archive-product.php)以执行woocommerce_before_single_product_summary操作
  2. 你可以将正在寻找的功能添加到woocommerce_before_single_product_summary操作中, 并将其添加到在” 商店” 页面上触发的操作中
  3. 你可以创建一个执行woocommerce_before_single_product_summary操作的函数, 并将其挂接到Shop页面上的操作中(类似于选项1, 但不会覆盖Shop模板)-从理论上讲, 如果WooCommerce更新, 则将来会阻止更多工作他们的模板)
怎么做
  1. 在你的主题/子主题中创建一个名为woocommerce的文件夹, 然后将plugins / woocommerce / templates / content-product.php复制到该文件夹??, 然后找出要放置woocommerce_before_single_product_summary操作的位置。确保你位于< ?php?> 标记内, 将其弹出到你想要的位置:do_action(‘ woocommerce_before_single_product_summary’ );
  2. 找到满足你需求的特定功能, 然后将其添加到” 商店” 页面上已触发的操作中。在你的主题/子主题的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操作中。
  1. 同样, 在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'); }

优点缺点
  1. 最简单, 最快的方法来解决问题但是:请注意, 默认情况下, woocommerce_before_single_product_summary仅做两件事:显示产品图片并说该商品是否正在销售。这两个都已经显示在” 商店” 页面上。由于此方法仅执行woocommerce_before_single_product_summary操作, 因此你很可能在” 商店” 页面上重复了内容。可能不是解决此问题的最佳方法。
  2. 给你最大的粒度。我假设你可能正在寻找一些当前挂接到woocommerce_before_single_product_summary操作的特定功能, 然后在” 商店” 页面上执行此操作。如果是这种情况, 此方法将使你能够这样做, 而不必担心woocommerce_before_single_product_summary操作附带的任何其他功能(例如方法1中提到的重复产品映像)。但是, 你将需要找出特定功能的来源, 这需要进行一些挖掘。
  3. 不需要方法2中要求的挖掘, 但是与方法1一样, 将执行woocommerce_before_single_product_summary操作中涉及的所有操作。使用这种方法1的最大好处是, 当/如果WooCommerce将来更新其模板时(就像它们不时更新一样), 你将不必担心保持模板的最新更新。这并不总是一件大事, 但要记住这一点。

    推荐阅读