我们正在使用Google Translate自动翻译我们的网站,但我们想排除特定类别的产品。我们已经通过放置<span class="notranslate">Span</span>
在产品描述和相应的模板文件中手动标记,但现在我们想对更多的产品进行标记,因此我们认为使用挂钩是更好的方法。
我想实现以下目标,但我不知道如何正确插入仅用于产品描述的NoTranslate范围:
add_action( \'wp\', \'disable_translation\' );
function disable_translation() {
// If a product in the \'Cookware\' category is being viewed...
if ( is_product() && has_term( \'Cookware\', \'product_cat\' ) ) {
//... Wrap the product description into notranslate span to disable the translation
<span class="notranslate">???????????????????</span>
}
}
另一种方法可能是编辑描述。wp内容/插件/woocommerce/模板/单个产品/选项卡中的php如下:
<?php if ( has_term( \'Cookware\', \'product_cat\' ) ) {
echo "<span class=\'notranslate\'>";
}
else {
echo "<span>";
} ?>
<?php the_content(); ?>
echo "</span>";
<?php endif; ?>
但不幸的是,这导致了以下错误:
分析错误:语法错误,意外的“endif”(T\\u endif),在/wp-content/plugins/woocommerce/templates/single-product/tabs/description中应为文件结尾。php第41行
我拼写错什么了吗?
谁能告诉我怎么做?非常感谢!
SO网友:Andrew Schultz
有几种方法可以做到这一点,您可以编辑模板文件\\woocommerce\\templates\\single-product\\title.php
直接更改标题格式。否则,您可以在functions.php
文件并添加您自己的以覆盖我从中借用的answer
<?php
remove_action( \'woocommerce_single_product_summary\',\'woocommerce_template_single_title\', 5 );
add_action( \'woocommerce_single_product_summary\', \'modify_woocommerce_template_single_title\',5 );
function modify_woocommerce_template_single_title() {
if ( has_term( \'Cookware\', \'product_cat\' ) ) {
?>
<h1 class="product_title entry-title"><span class="notranslate"><?php the_title(); ?></span></h1>
<?php
}
else {
?><h1 class="product_title entry-title"><?php the_title(); ?></h1><?php
}
}
?>
这只会更改单个产品页面的标题。商店页面将保留正常的产品标题,因为它使用不同的挂钩,但您可以应用相同的原则删除挂钩
woocommerce_shop_loop_item_title
并覆盖该功能
woocommerce_template_loop_product_title