Alb*_*toV 2 php wordpress breadcrumbs custom-taxonomy woocommerce
我正在尝试修改class-wc-breadcrumb.php以自定义产品页面面包屑中的产品类别链接。
该文件位于: wp-content/plugins/woocommerce/includes
我试图将我的子主题中的这个文件复制并编辑为:
wp-content/themes/Divi-child/woocommerce/includes/lass-wc-breadcrumb.php
但它不起作用。
如何通过我的子主题自定义 Woocommerce 中的产品类别面包屑链接?
这是不可能改变内核文件通过你的主题,它是严格禁止这样做的原因有很多。
global/breadcrumb.php 在您的情况下最好的选择是第一个选项。在下面的代码中,您将能够自定义 Woocommerce 产品类别链接的每个链接。
在下面的代码中,我使用 foreach 循环遍历每个$crumb. 每个$crumb都是一个数组,其中:
$crumb[0] 是显示的标签名称$crumb[1]是将使用$crumbs[$key][1]...更改的链接(或 url)$crumb[0]在允许自定义它的链接之前,我们将检查当前是否是产品类别名称$crumbs[$key][1]。
您必须为每个产品类别设置新链接,将您自己的必要代码添加到这个过滤的挂钩函数示例中。
编码:
add_filter( 'woocommerce_get_breadcrumb', 'custom_breadcrumb', 10, 2 );
function custom_breadcrumb( $crumbs, $object_class ){
// Loop through all $crumb
foreach( $crumbs as $key => $crumb ){
$taxonomy = 'product_cat'; // The product category taxonomy
// Check if it is a product category term
$term_array = term_exists( $crumb[0], $taxonomy );
// if it is a product category term
if ( $term_array !== 0 && $term_array !== null ) {
// Get the WP_Term instance object
$term = get_term( $term_array['term_id'], $taxonomy );
// HERE set your new link with a custom one
$crumbs[$key][1] = home_url( '/'.$term->slug.'/' ); // or use all other dedicated functions
}
}
return $crumbs;
}
Run Code Online (Sandbox Code Playgroud)
代码位于活动子主题(或活动主题)的 function.php 文件中。
测试和工作。
| 归档时间: |
|
| 查看次数: |
12989 次 |
| 最近记录: |