我想用简短的代码在我的类别页面上显示类别缩略图。原谅我,我的 PHP 技术很差...
系统简介: WordPress 6.4.3 woocommerce 8.6.1 主题:迪维 4.24.2
我发现了这个主题,对我帮助很大:如何使用 DIVI 主题显示 Woocommerce 类别描述
我想要一个类似的代码,但用于显示活动类别缩略图。
我尝试将其添加到functions.php,但没有成功:
add_shortcode('cat_img', 'cat_img_shortcode');
function cat_img_shortcode() {
global $wp_query;
$cat = $wp_query->get_queried_object();
if( $cat == null ) return;
$output = nl2br($cat->thumbnail);
return $output;
}
如果有人可以帮助我,那就太好了:)
您可以使用以下短代码在产品类别存档页面上显示产品类别图像(如果可用):
add_shortcode('term_img', 'term_image_shortcode');
function term_image_shortcode() {
$term = get_queried_object();
if( ! is_a($term, 'WP_Term') ) return;
$thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
if ( ! $thumbnail_id ) return;
$image_size = 'woocommerce_thumbnail';
$dimensions = wc_get_image_size( $image_size );
$image = wp_get_attachment_image_src( $thumbnail_id, $image_size );
$image = $image[0];
if ( ! $image ) return;
$image = str_replace( ' ', '%20', $image ); // Prevent esc_url from breaking spaces in urls for image embeds.
$image_srcset = wp_get_attachment_image_srcset( $thumbnail_id, $image_size );
$image_sizes = wp_get_attachment_image_sizes( $thumbnail_id, $image_size );
// Add responsive image markup if available.
if ( $image_srcset && $image_sizes ) {
return '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $term->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" srcset="' . esc_attr( $image_srcset ) . '" sizes="' . esc_attr( $image_sizes ) . '" />';
} else {
return '<img src="' . esc_url( $image ) . '" alt="' . esc_attr( $term->name ) . '" width="' . esc_attr( $dimensions['width'] ) . '" height="' . esc_attr( $dimensions['height'] ) . '" />';
}
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。