我今天已经阅读了大约30或40篇关于如何实现这一目标的文章,但没有一篇能给出一个非常简单的答案。
长话短说,我们有大约40个类别,只是想在每个类别页面的底部添加一个带有链接的文本块。
所以希望编辑类别页面模板。我们在子主题中设置了woocommerce文件夹,并且其他文件覆盖了默认插件。所以我们理解它可能是要编辑的content-product.php文件?但是应用的位置和代码是什么?尝试在底部附近添加,但它被卷入循环并将其添加到该类别中的产品数量的页面中,与产品标题,图像等循环。
我们应该考虑在我们的子主题的functions.php文件中添加自定义php吗?
任何帮助非常感谢。感谢。
答案 0 :(得分:0)
有几种不同的方法可以解决这个问题,但在大多数情况下,您需要编写一些PHP。
要在类别页面的底部放置内容,您需要检查WooCommerce如何显示类别。访问taxonomy-product_cat.php
WC模板将显示该类别使用archive-product.php
。下一步是审查该模板文件。
您希望在类别页面的底部显示某些内容,它只会显示一次,因此它不属于主要产品循环内部。
如果您覆盖archive-product.php
模板并手动插入链接,它不仅会出现在类别上,还会显示在商店和标记页面上。这告诉您需要条件来限制链接的显示。
使用钩子WooCommerce提供了您根本无法覆盖模板的方法。文件中有2个钩子可能是合适的:
woocommerce_after_shop_loop
- 在有产品的循环后执行woocommerce_after_main_content
- 无论是否有产品,都会在页面底部执行。编写一个函数,使用其中一个钩子输出您的链接:
function wpse_wc_category_footer_link() {
// woocommerce_after_main_content is a generic hook; check we're on a category page.
if ( ! is_product_category() ) {
return;
} ?>
<!-- Your markup for category pages belongs here... -->
<a href="#">My Link</a>
<?php
}
add_action( 'woocommerce_after_main_content', 'wpse_wc_category_footer_link', 5 );