- 状态
- 已由作者解决
- 解决于
- Blocksy Companion 2.0.33
- 相关插件/主题
- Blocksy
- 主题标签
- Compatibility
问题概述
在 Blocksy 主题中,当与 WPML 一起使用 Products Tab 功能时,翻译成次要语言的选项卡可能会在前端错误地以原始语言显示。
临时解决方法
请在继续操作前,确保对您的站点进行完整备份。
- 打开 …/wp-content/plugins/blocksy-companion-pro/framework/premium/extensions/woocommerce-extra/features/custom-tabs/feature.php 文件
- 找到第 139 行。
- 替换:
$all_products_tabs = get_posts([ 'numberposts' => -1, 'post_type' => $this->post_type, ]);
- 替换为:
$all_products_tabs = get_posts([ 'numberposts' => -1, 'post_type' => $this->post_type, // WPML Workaround for compsupp-7255 - PART 1 'suppress_filters' => false ]);
- 然后,打开 …/wp-content/plugins/blocksy-companion-pro/framework/features/conditions/rules-resolver.php 文件
- 找到第 364 行。
- 替换:
if ( isset($rule['payload']) && isset($rule['payload']['post_id']) && $post_id && intval($post_id) === intval($rule['payload']['post_id']) ) { return true; } - 替换为:
// WPML Workaround for compsupp-7255 - Part 2 if ( class_exists('Sitepress') ) { $rule['payload']['post_id'] = apply_filters( 'wpml_object_id', $rule['payload']['post_id'], get_post_type($rule['payload']['post_id']) , TRUE ); } if ( isset($rule['payload']) && isset($rule['payload']['post_id']) && $post_id && intval($post_id) === intval($rule['payload']['post_id']) ) { return true; }