以默认语言获取产品类别的术语数(使用 WPML)

洛伦佐·瓦拉诺

我使用 WPML 作为翻译插件和 Woocommerce。我的产品只有英文版,其他语言都没有翻译。但是,我面临着产品类别计数的问题。如果网站语言是英语,例如在 Cat AI 中,则有 4 个产品。计数显示正确,为 4。如果我切换到意大利语,则计数为 0。我已经检查过 WPML 支持。他们建议我使用自定义代码。因此,我创建了一个短代码来显示所有类别的计数器,就像 Woocmmerce [product_categories] 的官方短代码一样。使用我自己的简码显示类别,但我仍然遇到同样的问题。这是我的代码。我有一个 if (ICL Language Code == '') 然后获取默认类别代码。我对此进行了测试,并获得了默认的类别 ID。使用类别代码,我尝试获取术语计数。然而,似乎有些不对劲。即使 $default_lang_id 是英语的类别 ID,计数器也会回退到当前语言,例如意大利语。我是否需要直接从 term_taxonomies -> count 通过 wp 查询来提供这个?

 function prod_categories() {
$get_featured_cats = array(
    'taxonomy'     => 'product_cat',
    'orderby'      => 'asc',
    'show_count'   => '1',
    'hide_empty'   => '0',
    'include'      => $cat_array
);

$all_categories = get_categories( $get_featured_cats );
$j = 1;
foreach ($all_categories as $cat) {
    $cat_id   = $cat->term_id;
    $cat_link = get_category_link( $cat_id );

    $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true ); // Get Category Thumbnail
    $image = wp_get_attachment_url( $thumbnail_id ); 
    if(ICL_LANGUAGE_CODE=='de' || ICL_LANGUAGE_CODE=='fr' || ICL_LANGUAGE_CODE=='it'){
    $default_lang_id = icl_object_id( $cat_id, 'product_cat', true, 'en' );
    $default_lang_count = get_term( $default_lang_id, 'product_cat' );

};
    if ( $image ) {
        echo '<div style="float:left;margin:10px;"><a href="' . $cat_link . '"><img src="' . $image . '" alt="" /><br><center>' . $cat->name . ' ('. $cat->count .')</center></a>'.$default_lang_id. ' ' .'('.$default_lang_count->count.')</div>';
    }
    $j++;
}
// Reset Post Data
wp_reset_query();

}
add_shortcode( 'prod_categories', 'prod_categories' );

请看这里的截图以便更好地理解 在此处输入图片说明

埃尔文·哈奇

由于 4.8 版本 WordPress 支持 get_terms 函数的“suppress_filter”参数。所以,我想错过的一点是那个过滤器。此参数应强制函数忽略“WPML 存在因素”并按原样获取所有类别数据。

尝试添加并再次测试:

$get_featured_cats = array(
    'taxonomy'     => 'product_cat',
    'orderby'      => 'asc',
    'show_count'   => '1',
    'hide_empty'   => '0',
    'include'      => $cat_array,
    'suppress_filter'=>true
);

替代方法:(通过SQL查询)

    //$default_lang_id = icl_object_id( $cat_id, 'product_cat', true, 'en' );
    //$default_lang_count = get_term( $default_lang_id, 'product_cat' );
    global $wpdb;
    $default_lang_count=$wpdb->get_var("select count from 
    $wpdb->term_taxonomy 
    where term_id=".esc_sql($cat_id));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用WordPress + WPML + WooCommerce售票

来自分类Dev

如何使用 REST API(python 包装器)从 WooCommerce 获取多达 100 个其他语言(WPML)的产品

来自分类Dev

通过子句获取WooCommerce产品类别的ID

来自分类Dev

jQuery内部的PHP,用于使用WPML进行Wordpress翻译

来自分类Dev

我如何使用WPML翻译javascript中的html文本

来自分类Dev

我如何使用WPML翻译javascript中的html文本

来自分类Dev

WordPress-使用WPML翻译小部件(小部件区域)

来自分类Dev

如果可用,WPML 从所有语言获取字符串的翻译内容

来自分类Dev

如何使用WPML插件显示不同语言的自定义帖子类型列表?

来自分类Dev

(1.9)获取所有产品类别的ID(在产品页面上)

来自分类Dev

从WordPress获取WooCommerce产品类别

来自分类Dev

Woocommerce:获取当前产品类别

来自分类Dev

woocommerce获取产品类别ID

来自分类Dev

更改多个特定 woocommerce 产品类别的默认排序顺序

来自分类Dev

在WooCommerce中将产品类别和标签术语作为meta关键字获取

来自分类Dev

从 WooCommerce 中的最后一个产品类别术语获取“缩略图 ID”

来自分类Dev

WPML wordpress:如何检查页面是否不存在于某种语言中?

来自分类Dev

使用 Python 抓取产品类别

来自分类Dev

获取 WooCommerce 中顶级产品类别的自定义数组

来自分类Dev

在 Woocommerce 中获取并显示产品类别的特色图片

来自分类Dev

基于产品类别的运输方式的额外费用

来自分类Dev

如何使用WooCommerce更改每行产品类别的数量

来自分类Dev

获取与产品 ID 匹配的产品类别

来自分类Dev

使用 Get 请求获取 Woocommerce 产品类别档案的销售产品

来自分类Dev

库存产品类别

来自分类Dev

WPML:wp_query()返回所有语言的帖子,而不仅仅是当前的一种

来自分类Dev

将语言从默认语言(英语)切换为其他语言(例如阿拉伯语)时,WPML使我的网站慢3倍

来自分类Dev

在WooCommerce产品类别页面循环中获取帖子数

来自分类Dev

在opencart主页上获取产品类别

Related 相关文章

  1. 1

    使用WordPress + WPML + WooCommerce售票

  2. 2

    如何使用 REST API(python 包装器)从 WooCommerce 获取多达 100 个其他语言(WPML)的产品

  3. 3

    通过子句获取WooCommerce产品类别的ID

  4. 4

    jQuery内部的PHP,用于使用WPML进行Wordpress翻译

  5. 5

    我如何使用WPML翻译javascript中的html文本

  6. 6

    我如何使用WPML翻译javascript中的html文本

  7. 7

    WordPress-使用WPML翻译小部件(小部件区域)

  8. 8

    如果可用,WPML 从所有语言获取字符串的翻译内容

  9. 9

    如何使用WPML插件显示不同语言的自定义帖子类型列表?

  10. 10

    (1.9)获取所有产品类别的ID(在产品页面上)

  11. 11

    从WordPress获取WooCommerce产品类别

  12. 12

    Woocommerce:获取当前产品类别

  13. 13

    woocommerce获取产品类别ID

  14. 14

    更改多个特定 woocommerce 产品类别的默认排序顺序

  15. 15

    在WooCommerce中将产品类别和标签术语作为meta关键字获取

  16. 16

    从 WooCommerce 中的最后一个产品类别术语获取“缩略图 ID”

  17. 17

    WPML wordpress:如何检查页面是否不存在于某种语言中?

  18. 18

    使用 Python 抓取产品类别

  19. 19

    获取 WooCommerce 中顶级产品类别的自定义数组

  20. 20

    在 Woocommerce 中获取并显示产品类别的特色图片

  21. 21

    基于产品类别的运输方式的额外费用

  22. 22

    如何使用WooCommerce更改每行产品类别的数量

  23. 23

    获取与产品 ID 匹配的产品类别

  24. 24

    使用 Get 请求获取 Woocommerce 产品类别档案的销售产品

  25. 25

    库存产品类别

  26. 26

    WPML:wp_query()返回所有语言的帖子,而不仅仅是当前的一种

  27. 27

    将语言从默认语言(英语)切换为其他语言(例如阿拉伯语)时,WPML使我的网站慢3倍

  28. 28

    在WooCommerce产品类别页面循环中获取帖子数

  29. 29

    在opencart主页上获取产品类别

热门标签

归档