- סטטוס
- נפתר על ידי המפתח
- נפתר בגרסה
- Bricks 2.0
- תוסף/ערכת עיצוב קשורים
- Bricks
- תגיות נושא
- Compatibility
סקירה כללית של התקלה
בערכת העיצוב Bricks, כאשר תנאי תבנית מוגדר להצגה רק עבור מונחים מסוימים (לדוגמה, קטגוריה מסוימת), התנאי אינו חל כראוי בתבניות המתורגמות.
פתרון עוקף
אנא ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.
חלק 1
- עבור אל WPML > הגדרות > שדות מותאמים אישית.
- חפש את השדה
_bricks_template_settings. - הגדר אותו כהעתקה
חלק 2
- פתח את קובץ 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; }