- סטטוס
- נפתר
- דווח עבור
- WPML Multilingual CMS 4.6.3
- נפתר בגרסה
- WPML 4.6.4
- תגיות נושא
- Bug
סקירה כללית של התקלה
בעת יצירת תפריט והקצאתו למיקום תחת עיצוב → תפריטים, רענון העמוד מסיר את הסימון מתיבת הסימון של המיקום. עם זאת, התפריט עדיין מוצג כראוי בצד הלקוח.
בעיה זו מתרחשת כאשר מזהי (ID) של מונחים אינם שווים למזהי (ID) של טקסונומיית המונחים, דבר שיכול לקרות באתרים המריצים את WordPress מאז גרסה 4.1 או גרסאות ישנות יותר, כפי שמוסבר כאן.
פתרון עוקף
הקפד לבצע גיבוי מלא של האתר לפני שתמשיך.
- פתח את …/sitepress-multilingual-cms/inc/taxonomy-term-translation/wpml-term-translation.class.php.
- חפש את שורה 118.
- שנה:
private function maybe_warm_term_id_cache() { if ( ! isset( $this->ttids ) || ! isset( $this->term_ids ) ) { $data = $this->wpdb->get_results( " SELECT wpml_translations.element_id, tax.term_id, tax.taxonomy " . $this->get_element_join() . " JOIN {$this->wpdb->terms} terms ON terms.term_id = tax.term_id WHERE tax.term_id != tax.term_taxonomy_id", ARRAY_A ); $this->term_ids = array(); $this->ttids = array(); foreach ( $data as $row ) { $this->ttids[ $row['term_id'] ] = isset( $this->ttids[ $row['term_id'] ] ) ? $this->ttids[ $row['term_id'] ] : array(); $this->ttids[ $row['term_id'] ][ $row['taxonomy'] ] = $row['element_id']; $this->term_ids[ $row['element_id'] ] = $row['term_id']; } } }ל:private function maybe_warm_term_id_cache() { if ( ! isset( $this->ttids ) || ! isset( $this->term_ids ) ) { $data = $this->wpdb->get_results( " SELECT wpml_translations.element_id, tax.term_id, tax.taxonomy " . $this->get_element_join() . " JOIN {$this->wpdb->terms} terms ON terms.term_id = tax.term_id WHERE tax.term_id != tax.term_taxonomy_id", ARRAY_A ); $this->term_ids = array(); $this->ttids = array(); foreach ( $data as $row ) { $this->ttids[ $row['term_id'] ] = isset( $this->ttids[ $row['term_id'] ] ) ? absint($this->ttids[ $row['term_id'] ]) : array(); $this->ttids[ $row['term_id'] ][ $row['taxonomy'] ] = absint($row['element_id']); $this->term_ids[ $row['element_id'] ] = absint($row['term_id']); } } }