查看子类别时显示 WooCommerce 父类别缩略图
Show WooCommerce parent category thumbnail when viewing a child category
我有一个功能,可以 return 在 WooCommerce 的存档页面上显示产品类别缩略图。这很好用。
我想做的是,在查看子类别时能够 return 父类别缩略图。
这是我目前得到的代码:
function woocommerce_category_image() {
if ( is_product_category() ){
global $wp_query;
$cat = $wp_query->get_queried_object();
$thumbnail_id = get_term_meta( $cat->term_id, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
if ( $image ) {
echo '<img src="' . $image . '" alt="' . $cat->name . '" />';
}
}
}
任何人都可以帮助修改查询以使其显示父类别图像。
如果有子缩略图,最好显示子缩略图,如果没有,则返回父缩略图并显示。
只需将 $cat->term_id
更改为 $cat->parent
即可获取父级缩略图 ID。
最终代码:
function woocommerce_category_image() {
if ( is_product_category() ){
global $wp_query;
$cat = $wp_query->get_queried_object();
$thumbnail_id = get_term_meta( $cat->parent, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
if ( $image ) {
echo '<img src="' . $image . '" alt="' . $cat->name . '" />';
}
}
希望对您有所帮助
要避免顶级类别出现空白图像,请使用以下内容:
function woocommerce_category_image() {
if ( is_product_category() ){
$term = get_queried_object(); // get the WP_Term Object
$term_id = $term->parent > 0 ? $term->parent : $term->term_id; // Avoid an empty image on the top level category
$image_src = wp_get_attachment_url( get_term_meta( $term_id, 'thumbnail_id', true ) ); // Get image Url
if ( ! empty($image_src) ) {
echo '<img src="' . $image_src . '" alt="' . $term->name . '" />';
}
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
更新(与您的评论相关)
此处如果查询的商品分类没有设置图片,则显示父商品分类图片。
function woocommerce_category_image() {
if ( is_product_category() ){
$term = get_queried_object(); // get the WP_Term Object
$image_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
if( empty( $image_id ) && $term->parent > 0 ) {
$image_id = get_term_meta( $term->parent, 'thumbnail_id', true );
}
$image_src = wp_get_attachment_url( $image_id ); // Get the image Url
if ( ! empty($image_src) ) {
echo '<img src="' . $image_src . '" alt="' . $term->name . '" />';
}
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我有一个功能,可以 return 在 WooCommerce 的存档页面上显示产品类别缩略图。这很好用。
我想做的是,在查看子类别时能够 return 父类别缩略图。
这是我目前得到的代码:
function woocommerce_category_image() {
if ( is_product_category() ){
global $wp_query;
$cat = $wp_query->get_queried_object();
$thumbnail_id = get_term_meta( $cat->term_id, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
if ( $image ) {
echo '<img src="' . $image . '" alt="' . $cat->name . '" />';
}
}
}
任何人都可以帮助修改查询以使其显示父类别图像。
如果有子缩略图,最好显示子缩略图,如果没有,则返回父缩略图并显示。
只需将 $cat->term_id
更改为 $cat->parent
即可获取父级缩略图 ID。
最终代码:
function woocommerce_category_image() {
if ( is_product_category() ){
global $wp_query;
$cat = $wp_query->get_queried_object();
$thumbnail_id = get_term_meta( $cat->parent, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
if ( $image ) {
echo '<img src="' . $image . '" alt="' . $cat->name . '" />';
}
}
希望对您有所帮助
要避免顶级类别出现空白图像,请使用以下内容:
function woocommerce_category_image() {
if ( is_product_category() ){
$term = get_queried_object(); // get the WP_Term Object
$term_id = $term->parent > 0 ? $term->parent : $term->term_id; // Avoid an empty image on the top level category
$image_src = wp_get_attachment_url( get_term_meta( $term_id, 'thumbnail_id', true ) ); // Get image Url
if ( ! empty($image_src) ) {
echo '<img src="' . $image_src . '" alt="' . $term->name . '" />';
}
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
更新(与您的评论相关)
此处如果查询的商品分类没有设置图片,则显示父商品分类图片。
function woocommerce_category_image() {
if ( is_product_category() ){
$term = get_queried_object(); // get the WP_Term Object
$image_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
if( empty( $image_id ) && $term->parent > 0 ) {
$image_id = get_term_meta( $term->parent, 'thumbnail_id', true );
}
$image_src = wp_get_attachment_url( $image_id ); // Get the image Url
if ( ! empty($image_src) ) {
echo '<img src="' . $image_src . '" alt="' . $term->name . '" />';
}
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。