在短代码中显示 Woocommerce 子类别图像
Displaying the Woocommerce subcategory image in a shortcode
所以我有一个运行良好的短代码,它可以拉入产品的子类别并显示图像和文本,但我意识到它位于内容的顶部,因为我使用了 echo 。 . .所以将 HTML 输出移动到一个变量中,这样我就可以 return 它但是图像从列表项中出来,所以函数似乎有问题:woocommerce_subcategory_thumbnail()
不太清楚为什么,但我认为函数必须有回声?我想我只想获取图像 url 并将其放入容器中?老实说不知道最好的方法是什么,但这就是我所在的地方
add_shortcode( 'show_products_categories_os', 'categories_of_the_product_os' );
function categories_of_the_product_os() {
$term_id = get_term_by( 'slug', 'os', 'product_cat' );
$terms = get_the_terms( get_the_ID(), 'product_cat' );
if ( $terms ) {
$output_html .= '<ul class="product-cats osp">';
foreach ( $terms as $term ) {
if($term->parent === $term_id->term_id){
$output_html .= '<li class="category os">';
$output_html .= '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . woocommerce_subcategory_thumbnail( $term ) . '</a>';
$output_html .= '<h2><a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . $term->name . '</a></h2>';
$output_html .= '</li>';
}
}
$output_html .= '</ul>';
}
return $output_html;
}
有没有我找不到的另一个函数可以为图像提供 url?或者从其他功能中剥离它的方法?
您需要从术语的元数据中获取 thumbnail_id
并将其作为参数传递给 wp_get_attachment_url
add_shortcode( 'show_products_categories_os', 'categories_of_the_product_os' );
function categories_of_the_product_os() {
$term_id = get_term_by( 'slug', 'os', 'product_cat' );
$terms = get_the_terms( get_the_ID(), 'product_cat' );
if ( $terms ) {
$output_html .= '<ul class="product-cats osp">';
foreach ( $terms as $term ) {
$thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
$image_url = wp_get_attachment_url( $thumbnail_id );
if($term->parent === $term_id->term_id){
$output_html .= '<li class="category os">';
$output_html .= '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . $image_url . '</a>';
$output_html .= '<h2><a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . $term->name . '</a></h2>';
$output_html .= '</li>';
}
}
$output_html .= '</ul>';
}
return $output_html;
}
来源:
注意事项
您现在需要将 $image_url
添加到要输出的图像的 img
标签的 src
属性中,因为目前只显示 URL .
所以我有一个运行良好的短代码,它可以拉入产品的子类别并显示图像和文本,但我意识到它位于内容的顶部,因为我使用了 echo 。 . .所以将 HTML 输出移动到一个变量中,这样我就可以 return 它但是图像从列表项中出来,所以函数似乎有问题:woocommerce_subcategory_thumbnail()
不太清楚为什么,但我认为函数必须有回声?我想我只想获取图像 url 并将其放入容器中?老实说不知道最好的方法是什么,但这就是我所在的地方
add_shortcode( 'show_products_categories_os', 'categories_of_the_product_os' );
function categories_of_the_product_os() {
$term_id = get_term_by( 'slug', 'os', 'product_cat' );
$terms = get_the_terms( get_the_ID(), 'product_cat' );
if ( $terms ) {
$output_html .= '<ul class="product-cats osp">';
foreach ( $terms as $term ) {
if($term->parent === $term_id->term_id){
$output_html .= '<li class="category os">';
$output_html .= '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . woocommerce_subcategory_thumbnail( $term ) . '</a>';
$output_html .= '<h2><a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . $term->name . '</a></h2>';
$output_html .= '</li>';
}
}
$output_html .= '</ul>';
}
return $output_html;
}
有没有我找不到的另一个函数可以为图像提供 url?或者从其他功能中剥离它的方法?
您需要从术语的元数据中获取 thumbnail_id
并将其作为参数传递给 wp_get_attachment_url
add_shortcode( 'show_products_categories_os', 'categories_of_the_product_os' );
function categories_of_the_product_os() {
$term_id = get_term_by( 'slug', 'os', 'product_cat' );
$terms = get_the_terms( get_the_ID(), 'product_cat' );
if ( $terms ) {
$output_html .= '<ul class="product-cats osp">';
foreach ( $terms as $term ) {
$thumbnail_id = get_term_meta( $term->term_id, 'thumbnail_id', true );
$image_url = wp_get_attachment_url( $thumbnail_id );
if($term->parent === $term_id->term_id){
$output_html .= '<li class="category os">';
$output_html .= '<a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . $image_url . '</a>';
$output_html .= '<h2><a href="' . esc_url( get_term_link( $term ) ) . '" class="' . $term->slug . '" target="_blank">' . $term->name . '</a></h2>';
$output_html .= '</li>';
}
}
$output_html .= '</ul>';
}
return $output_html;
}
来源:
注意事项
您现在需要将 $image_url
添加到要输出的图像的 img
标签的 src
属性中,因为目前只显示 URL .