- סטטוס
- נפתר
- דווח עבור
- WPML Media Translation 2.7.4
- נפתר בגרסה
- WPML 4.7.2
- תגיות נושא
- Bug
סקירה כללית של התקלה
אם אתה משתמש בתוסף WPML Media Translation, ייתכן שתיתקל בבעיה כאשר תמונה גדולה מדי שמפעילה את התאמת הגודל של WordPress מתורגמת, ולאחר מכן אחד התרגומים מוסר. כתוצאה מכך, קובץ התמונה המקורי נמחק גם כן, ויהיה קישור שבור לתמונה בשפה המקורית.
פתרון עוקף
אנא ודא שברשותך גיבוי מלא של האתר לפני שתמשיך.
- פתח את הקובץ …/wp-content/plugins/sitepress-multilingual-cms/classes/media/class-wpml-attachment-action.php.
- חפש את שורה 171.
- החלף את:
public function delete_file_filter( $file ) { if ( $file ) { $file_name = $this->get_file_name( $file ); $sql = "SELECT pm.meta_id, pm.post_id FROM {$this->wpdb->postmeta} AS pm WHERE pm.meta_value = %s AND pm.meta_key='_wp_attached_file'"; $attachment_prepared = $this->wpdb->prepare( $sql, [ $file_name ] ); $attachment = $this->wpdb->get_row( $attachment_prepared ); if ( ! empty( $attachment ) ) { $file = null; } } return $file; } - ב:
public function delete_file_filter( $file ) { if ( $file ) { $file_name = $this->get_file_name( $file ); $test = explode('.', $file_name); $sliced = array_slice($test, 0, -1); $scaled = implode('.', $sliced); $ext = '-scaled.'. end($test); $processed = $scaled.$ext; $sql = "SELECT pm.meta_id, pm.post_id FROM {$this->wpdb->postmeta} AS pm WHERE pm.meta_value = %s OR pm.meta_value = '$processed' AND pm.meta_key='_wp_attached_file'"; $attachment_prepared = $this->wpdb->prepare( $sql, [ $file_name ] ); $attachment = $this->wpdb->get_row( $attachment_prepared ); if ( ! empty( $attachment ) ) { $file = null; } } return $file; }