通过主题自定义 Woocommerce 中的产品类别面包屑链接
Customizing product categories breadcrumb links in Woocommerce via the theme
我正在尝试修改 class-wc-breadcrumb.php
以自定义我的产品页面面包屑中的产品类别链接。
此文件位于:wp-content/plugins/woocommerce/includes
我试图在我的子主题中复制并编辑这个文件:
wp-content/themes/Divi-child/woocommerce/includes/lass-wc-breadcrumb.php
但是没用
如何通过我的子主题在 Woocommerce 中自定义产品类别面包屑链接?
有很多选项可以更改选项..
为此
add_filter( 'woocommerce_breadcrumb_defaults', 'jk_woocommerce_breadcrumbs' );
function jk_woocommerce_breadcrumbs() {
return array(
'delimiter' => ' / ',
'wrap_before' => '<nav class="woocommerce-breadcrumb" itemprop="breadcrumb">',
'wrap_after' => '</nav>',
'before' => '',
'after' => '',
'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ),
);
}
您可以通过此更改所有内容。
更多信息:- https://docs.woocommerce.com/document/customise-the-woocommerce-breadcrumb/
It is NOT possible to change cores files via your theme and it is strictly prohibited to do it for many reasons.
相反 你有 2 个选项:
- 为 WooCommerce 面包屑定制使用任何可用的操作和过滤器挂钩。
- 自定义 WooCommerce 模板
global/breadcrumb.php
via your active child theme
您情况的最佳选择是第一个选项。在下面的代码中,您将能够自定义每个 link 的 Woocommerce 产品类别 links.
在下面的代码中,我使用 foreach 循环遍历每个 $crumb
。每个 $crumb
是一个数组,其中:
$crumb[0]
是显示的标签名
$crumb[1]
是将使用 $crumbs[$key][1]
… 更改的 link(或 url)
我们将检查当前 $crumb[0]
是否为产品类别名称,然后才允许在 $crumbs[$key][1]
中自定义它的 link。
You will have to set your new links for each product category adding your own necessary code to this filtered hooked function example.
代码:
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;
}
代码进入活动子主题(或活动主题)的 function.php 文件。
已测试并有效。
add_filter( 'woocommerce_breadcrumb_defaults', 'ts_woocommerce_breadcrumbs_change' );
function ts_woocommerce_breadcrumbs_change() {
return array(
'delimiter' => ' ',
'wrap_before' => '<ul class="breadcrumb load-animate theme-animate fadeInUp animated" style="animation-delay: 0.3s;">',
'wrap_after' => '</ul>',
'before' => '<li> ',
'after' => '</li>',
'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ),
);
}
我正在尝试修改 class-wc-breadcrumb.php
以自定义我的产品页面面包屑中的产品类别链接。
此文件位于:wp-content/plugins/woocommerce/includes
我试图在我的子主题中复制并编辑这个文件:
wp-content/themes/Divi-child/woocommerce/includes/lass-wc-breadcrumb.php
但是没用
如何通过我的子主题在 Woocommerce 中自定义产品类别面包屑链接?
有很多选项可以更改选项..
为此
add_filter( 'woocommerce_breadcrumb_defaults', 'jk_woocommerce_breadcrumbs' );
function jk_woocommerce_breadcrumbs() {
return array(
'delimiter' => ' / ',
'wrap_before' => '<nav class="woocommerce-breadcrumb" itemprop="breadcrumb">',
'wrap_after' => '</nav>',
'before' => '',
'after' => '',
'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ),
);
}
您可以通过此更改所有内容。
更多信息:- https://docs.woocommerce.com/document/customise-the-woocommerce-breadcrumb/
It is NOT possible to change cores files via your theme and it is strictly prohibited to do it for many reasons.
相反 你有 2 个选项:
- 为 WooCommerce 面包屑定制使用任何可用的操作和过滤器挂钩。
- 自定义 WooCommerce 模板
global/breadcrumb.php
via your active child theme
您情况的最佳选择是第一个选项。在下面的代码中,您将能够自定义每个 link 的 Woocommerce 产品类别 links.
在下面的代码中,我使用 foreach 循环遍历每个 $crumb
。每个 $crumb
是一个数组,其中:
$crumb[0]
是显示的标签名$crumb[1]
是将使用$crumbs[$key][1]
… 更改的 link(或 url)
我们将检查当前 $crumb[0]
是否为产品类别名称,然后才允许在 $crumbs[$key][1]
中自定义它的 link。
You will have to set your new links for each product category adding your own necessary code to this filtered hooked function example.
代码:
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;
}
代码进入活动子主题(或活动主题)的 function.php 文件。
已测试并有效。
add_filter( 'woocommerce_breadcrumb_defaults', 'ts_woocommerce_breadcrumbs_change' );
function ts_woocommerce_breadcrumbs_change() {
return array(
'delimiter' => ' ',
'wrap_before' => '<ul class="breadcrumb load-animate theme-animate fadeInUp animated" style="animation-delay: 0.3s;">',
'wrap_after' => '</ul>',
'before' => '<li> ',
'after' => '</li>',
'home' => _x( 'Home', 'breadcrumb', 'woocommerce' ),
);
}