我想将下一行具体添加到woocommerce的文件之一:wp-content \ plugins \ woocommerce \ templates \ archive-product.php
<div class="breadcrumps-header"><?php if ( function_exists( 'yoast_breadcrumb' ) ) {yoast_breadcrumb();} ?></div>
但是在Woocommerce的下一个更新中,我将放弃修改。如何添加像插件chlid这样的东西?
答案 0 :(得分:1)
如果您在主题中创建文件夹并将其命名为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 } ?>
答案 1 :(得分: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_action
,因此请选择一个最接近您想要的代码的脚本,并且只需进行少量试验即可获得所需的内容。