WPML

Panoramica del problema

Quando usi la funzione di duplicazione di WPML con i template Bricks, riscontrerai che le modifiche nella lingua predefinita non si riflettono nelle altre lingue quando il plugin WPML Media Translation è attivo.

Soluzione alternativa

Aggiorna a WPML 5.0 o versioni successive. I template Bricks duplicati ora seguono le modifiche che apporti nella lingua predefinita, anche con WPML Media Translation attivo.

Se non puoi ancora aggiornare:

Assicurati di avere un backup completo del tuo sito prima di procedere.

Parte I

  • Apri il file …/wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-custom-field-images-translation.php.
  • Cerca la riga 56.
  • Subito dopo:
    $setting          = $settings_factory->post_meta_setting( $meta_key );
  • Aggiungi:
    // Workaround part 1
    $bricks_meta_keys = array(
    	'_bricks_template_type',
    	'_bricks_page_content_2',
    	'_bricks_editor_mode',
    	'_bricks_template_settings',
    );
    
    if ( strpos( $meta_key, 'bricks' ) !== false ) {
    	return;
    }

Parte II

  • Apri il file …/wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-set-posts-media-flag.php.
  • Cerca la riga 128.
  • Subito dopo:
    $post_with_media_files = $this->post_with_media_files_factory->create( $post_id );
  • Commenta la seguente parte:
    // Workaround part 2
    /*if ( $post_with_media_files->get_media_ids() ) { // it seems that this line is causing this issue
    	update_post_meta( $post_id, self::HAS_MEDIA_POST_FLAG, 1 );
    } else {
    	delete_post_meta( $post_id, self::HAS_MEDIA_POST_FLAG );
    }*/

Tutti i problemi noti