注意:以下 sn-p 已在 wordpress 5.8 和 woocommerce 5.2 上经过全面测试,适用于默认的 woocommerce 产品类别。如果您尝试在第三方插件中使用它,您可能会遇到一些差异。因此,您可以随意自定义它!
如果我理解正确,您需要所有产品类别的缩略图。
您可以使用get_terms 获取所有产品类别。然后使用foreach 循环输出您的缩略图。像这样:
$args = array(
'taxonomy' => 'product_cat',
'hide_empty' => false,
);
$terms = get_terms($args);
foreach ($terms as $product_cat) {
$thumbnail_id = get_woocommerce_term_meta($product_cat->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($thumbnail_id);
echo "<img src='" . $image . "'>";
}
此部分与问题中使用的插件有关!
更新
就像我在 cmets 中所说,您提供的 php 文件是一个巨大的文件,其中包含“4634”行“意大利面条”代码,并多次引用其他外部文件。然而,在1957 线上,有一个似乎是我们感兴趣的函数,名为“get_customized_term_700”,包含$term_id、$term_slug、$term_name、$cnt、$checked 和@ 987654334@.
在同一个函数中,还有一个switchcase语句。 case 条件之一检查image。如果有过滤器,它将输出类别。所以我们将使用它来输出图像。
所以继续REPLACE使用以下函数在1957 行上调用“get_customized_term_700”的整个函数。
注意:
这还没有经过测试,因为我无法访问插件,这纯粹是根据php 文件中的逻辑编写的。希望对你有帮助!
public static function get_customized_term_700($term_id, $term_slug, $term_name, $cnt, $checked = '', $sublevel = '')
{
if (!empty($term_id)) {
$data = array(
'tooltip' => '',
'data' => '',
);
if (!empty(self::$filter['style']['terms'])) {
$key = self::__find_customized_term($term_id, self::$filter['style']['terms']);
if ($key !== false) {
$data = array_merge(array(
'tooltip' => '',
'data' => '',
), self::$filter['style']['terms'][$key]);
}
}
} else {
$data = array(
'value' => '',
'title' => self::__get_none_string(),
'tooltip' => self::__get_none_tooltip_string(),
'data' => self::__get_customized_term_none(self::$filter['style']['style']['type']),
);
}
if (!empty($data['title'])) {
$term_name = $data['title'];
}
$tip = empty($data['tooltip']) ? false : $data['tooltip'];
switch (self::$filter['style']['style']['type']) {
case 'text':
return '<span class="prdctfltr_customize_' . esc_attr(self::$filter['style']['style']['css']) . ' prdctfltr_customize"><span class="prdctfltr_customize_name">' . esc_html($term_name) . '</span>' . ($cnt !== false ? ' <span class="prdctfltr_customize_count">' . absint($cnt) . '</span>' : '') . ($tip !== false ? '<span class="prdctfltr_tooltip"><span>' . wp_kses_post($tip) . '</span></span>' : '') . ($checked !== '' ? '<input type="checkbox" value="' . esc_attr($term_slug) . '"' . esc_html($checked) . '/>' : '') . wp_kses_post($sublevel) . '</span>';
break;
case 'color':
if (!empty(self::$filter['style']['label']) && self::$filter['style']['label'] == 'side') {
return '<span class="prdctfltr_customize_block prdctfltr_customize"' . (!empty(self::$filter['style']['size']) ? sprintf(' style="line-height:%1$spx;', absint(self::$filter['style']['size'])) : '') . '><span class="prdctfltr_customize_color_text"><span style="background-color:' . Prdctfltr()->esc_color($data['data']) . ';' . (!empty(self::$filter['style']['size']) ? sprintf('width:%1$spx;height:%1$spx;', absint(self::$filter['style']['size'])) : '') . '"></span></span>' . ($tip !== false ? '<span class="prdctfltr_tooltip"><span>' . wp_kses_post($tip) . '</span></span>' : '') . ($checked !== '' ? '<input type="checkbox" value="' . esc_attr($term_slug) . '"' . esc_html($checked) . '/>' : '') . '<span class="prdctfltr_customization_search">' . esc_html($term_name) . '</span><span class="prdctfltr_customize_color_text_tip">' . esc_html($term_name) . '</span>' . ($cnt !== false ? ' <span class="prdctfltr_count">' . absint($cnt) . '</span>' : '') . wp_kses_post($sublevel) . '</span>';
} else {
return '<span class="prdctfltr_customize_block prdctfltr_customize"><span class="prdctfltr_customize_color" style="background-color:' . Prdctfltr()->esc_color($data['data']) . ';' . (!empty(self::$filter['style']['size']) ? sprintf('width:%1$spx;height:%1$spx;', absint(self::$filter['style']['size'])) : '') . '"></span>' . ($cnt !== false ? ' <span class="prdctfltr_customize_count">' . absint($cnt) . '</span>' : '') . ($tip !== false ? '<span class="prdctfltr_tooltip"><span>' . wp_kses_post($tip) . '</span></span>' : '') . ($checked !== '' ? '<input type="checkbox" value="' . esc_attr($term_slug) . '"' . esc_html($checked) . '/>' : '') . '<span class="prdctfltr_customization_search">' . esc_html($term_name) . '</span>' . wp_kses_post($sublevel) . '</span>';
}
break;
case 'image':
if (!empty(self::$filter['style']['label']) && self::$filter['style']['label'] == 'side') {
$args = array(
'taxonomy' => 'product_cat',
'hide_empty' => false,
);
$output = '';
$terms = get_terms($args);
foreach ($terms as $product_cat) {
$thumbnail_id = get_woocommerce_term_meta($product_cat->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($thumbnail_id);
$output .= '<span class="prdctfltr_customize_block prdctfltr_customize"' . (!empty(self::$filter['style']['size']) ? sprintf(' style="line-height:%1$spx;"', absint(self::$filter['style']['size'])) : '') . '><span class="prdctfltr_customize_image_text"><img src="' . $image . '"/></span>' . ($tip !== false ? '<span class="prdctfltr_tooltip"><span>' . wp_kses_post($tip) . '</span></span>' : '') . ($checked !== '' ? '<input type="checkbox" value="' . esc_attr($product_cat->slug) . '"' . esc_html($checked) . '/>' : '') . '<span class="prdctfltr_customization_search">' . esc_html($product_cat->name) . '</span><span class="prdctfltr_customize_image_text_tip">' . esc_html($product_cat->name) . '</span>' . ($cnt !== false ? ' <span class="prdctfltr_count">' . absint($cnt) . '</span>' : '') . wp_kses_post($sublevel) . '</span>';
}
return $output;
}
break;
case 'select':
return '<span class="prdctfltr_customize_select prdctfltr_customize">' . ($checked !== '' ? '<input type="checkbox" value="' . esc_attr($term_slug) . '"' . esc_html($checked) . '/>' : '') . '<span class="prdctfltr_customize_name">' . esc_html($term_name) . '</span>' . ($cnt !== false ? ' <span class="prdctfltr_customize_count">' . absint($cnt) . '</span>' : '') . wp_kses_post($sublevel) . '</span>' . ($tip !== false ? '<span class="prdctfltr_tooltip"><span>' . wp_kses_post($tip) . '</span></span>' : '');
break;
case 'html':
if (!empty($data['data'])) {
return wp_kses_post(stripslashes($data['data'])) . '<span class="prdctfltr_customization_search">' . esc_html($term_name) . '</span>' . ($tip !== false ? '<span class="prdctfltr_tooltip"><span>' . wp_kses_post($tip) . '</span>' . wp_kses_post($sublevel) . '</span>' : '');
} else {
return esc_html($term_name);
}
break;
default:
return '';
break;
}
}