【问题标题】:Plugin child Wordpress插件子 Wordpress
【发布时间】:2018-11-16 14:27:59
【问题描述】:

我想将下一行添加到具体的 woocommerce 文件之一:wp-content\plugins\woocommerce\templates\archive-product.php

<div class="breadcrumps-header"><?php if ( function_exists( 'yoast_breadcrumb' ) ) {yoast_breadcrumb();} ?></div>

但在 Woocommerce 的下一次更新中,我将放弃修改。如何添加类似插件的 chlid?

【问题讨论】:

  • 检查有问题的模板在该区域是否有任何可用于从外部插入内容的钩子;如果没有,您可以在自己的主题中声明“woocommerce 支持”,然后从那里覆盖特定的 WC 模板文件。
  • 你在使用子主题吗?
  • 首先,我建议先为面包屑找到一个挂钩。如果有,您也许可以使用钩子添加代码。 php 文件应放在您的子主题文件夹或新插件文件夹中,以防止被更新删除。

标签: php wordpress plugins woocommerce breadcrumbs


【解决方案1】:

如果您查看该文件 (https://github.com/woocommerce/woocommerce/blob/v2.2.3/templates/archive-product.php),您会看到许多不同的操作,您可以根据要插入该内容的位置来使用。

例如,靠近顶部的地方是这样的:

    /**
     * woocommerce_before_main_content hook
     *
     * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
     * @hooked woocommerce_breadcrumb - 20
     */
    do_action( 'woocommerce_before_main_content' );

评论显示 woocommerce 自己的面包屑以 20 的优先级与此操作挂钩。

如果您希望您的代码出现在此之后,您应该可以在主题的functions.php(或其他地方)中添加类似以下内容:

add_action('woocommerce_before_main_content', function() { ?>
<div class="breadcrumps-header">
    <?php if ( function_exists( 'yoast_breadcrumb' ) ) {yoast_breadcrumb();} ?>
</div>
<?php });

25 是优先级,确保您的代码将在 woocommerce 的 woocommerce_breadcrumb 函数之后执行。

该脚本中还有许多其他 do_actions,因此请选择最接近您的代码位置的一个,您应该通过一些实验得到所需的内容。

【讨论】:

  • 非常感谢!!!!!!我安装了“code sn-ps plugin”并添加了您的代码,它运行良好!
  • 不客气!很高兴听到这是您所需要的。
【解决方案2】:

如果您在主题中创建文件夹并将其命名为 woocommerce 并将所有文件从 wp-content\plugins\woocommerce\templates\ 复制到您的 wp-content\themes\yourthemename\woocommerce\ 您可以对此文件进行更改,并且在下一次 WooCommerce 更新后它不会丢失,只会显示如果他们对同一个原始文件进行了更改,您将使用旧版本的模板,您将不得不手动合并它们。如果不是您自己的主题,请先创建子主题,不要将 woocommerce 文件夹放在原始主题中。

而且,最好把div 放在if 里面,因为如果这个函数不存在,你不想显示空的div,对吧?

<?php if ( function_exists( 'yoast_breadcrumb' ) ) { ?>
<div class="breadcrumps-header"><?php yoast_breadcrumb(); ?></div>
<?php } ?>

【讨论】:

  • 嗨!感谢您的回答。我测试了你的方式,但我不喜欢,反正这很容易做到。非常感谢
猜你喜欢
  • 2011-12-02
  • 2013-10-09
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多