- สถานะ
- แก้ไขแล้วโดยผู้พัฒนา
- แก้ไขใน
- Bricks 2.0
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- Bricks
- แท็กหัวข้อ
- Compatibility
ภาพรวมของปัญหา
ใน Bricks Theme เมื่อมีการตั้งค่าเงื่อนไขเทมเพลตให้แสดงผลสำหรับคำศัพท์เฉพาะ (เช่น หมวดหมู่ใดหมวดหมู่หนึ่ง) เงื่อนไขดังกล่าวจะไม่มีผลอย่างถูกต้องในเทมเพลตที่แปลแล้ว
วิธีแก้ปัญหาชั่วคราว
โปรดตรวจสอบให้แน่ใจว่าได้ทำการสำรองข้อมูลไซต์ทั้งหมดของคุณก่อนดำเนินการต่อ
ส่วนที่ I
- ไปที่ WPML > การตั้งค่า > ฟิลด์ที่กำหนดเอง
- ค้นหาฟิลด์
_bricks_template_settings - ตั้งค่าเป็น คัดลอก
ส่วนที่ II
- เปิดไฟล์ functions.php ของธีมคุณ
- เพิ่มโค้ดต่อไปนี้:
/** * WPML Workaround for compsupp-7667 */ add_filter('get_post_metadata', 'wpml_compsupp7667_bricks_translate_template_conditions', 10, 4); function wpml_compsupp7667_bricks_translate_template_conditions($value, $post_id, $key, $single) { if ($key !== '_bricks_template_settings') { return $value; } // Remove filter temporarily to avoid infinite loop remove_filter('get_post_metadata', 'wpml_compsupp7667_bricks_translate_template_conditions', 10); // Get all meta values $raw_values = get_post_meta($post_id, $key, false); // Add filter back add_filter('get_post_metadata', 'wpml_compsupp7667_bricks_translate_template_conditions', 10, 4); // If we have no values, return the original if (empty($raw_values)) { return $value; } // Process the array structure foreach ($raw_values as &$settings) { if (is_array($settings) && isset($settings['templateConditions'])) { foreach ($settings['templateConditions'] as &$condition) { if (!empty($condition['archiveTerms']) && is_array($condition['archiveTerms'])) { foreach ($condition['archiveTerms'] as &$termString) { if (strpos($termString, '::') !== false) { list($taxonomy, $termId) = explode('::', $termString); $translatedId = apply_filters('wpml_object_id', intval($termId), $taxonomy, true); if ($translatedId) { $termString = $taxonomy . '::' . $translatedId; } } } } } } } return $raw_values; }