WPML
סטטוס
נפתר
סוג
באג
דווח עבור
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;
    	}

כל התקלות הידועות