WPML
Stato
Risolto dall’autore

Panoramica del problema

Quando provi a tradurre i contenuti creati con Muffin Builder di BeTheme, il contenuto tradotto non viene visualizzato nel front-end, oppure il contenuto è codificato come mostrato nello screenshot seguente:

Il contenuto creato con Muffin Builder è codificato

Soluzione alternativa

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

  1. Aggiorna all’ultima versione di Betheme
  2. Vai su Betheme > Theme Options > Global > Avanzato > Muffin Builder data storage e seleziona l’opzione Serialized | Readable format, required by some plugins
  3. Apri il file wp-content/themes/betheme/functions/theme-functions.php e cerca lo snippet seguente:
    /*
     * WPML | Workaround for compsupp-5901
     */
    
    function mfn_wpml_encode_custom_field( $custom_field_val, $custom_field_name ) {
      if ( $custom_field_name === 'mfn-page-items' ) {
    	  $custom_field_val = maybe_unserialize( base64_decode($custom_field_val) );
    	}
    	return $custom_field_val;
    }
    add_filter( 'wpml_encode_custom_field', 'mfn_wpml_encode_custom_field', 10, 2 );
    
    function mfn_wpml_decode_custom_field( $custom_field_val, $custom_field_name ) {
    	if ( $custom_field_name === 'mfn-page-items' ) {
    		$custom_field_val = base64_encode( serialize($custom_field_val) );
    	}
    	return $custom_field_val;
    }
    add_filter( 'wpml_decode_custom_field', 'mfn_wpml_decode_custom_field', 10, 2 );
  4. Sostituiscilo con lo snippet seguente:
    /*
     * WPML | Workaround for compsupp-5901
     */
    function mfn_wpml_encode_custom_field( $custom_field_val, $custom_field_name ) {
        if ( $custom_field_name === 'mfn-page-items' ) {
            $custom_field_val = base64_encode( serialize($custom_field_val) );
        }
        return $custom_field_val;	
    }
    add_filter( 'wpml_encode_custom_field', 'mfn_wpml_encode_custom_field', 10, 2 );
    
    function mfn_wpml_decode_custom_field( $custom_field_val, $custom_field_name ) {
    	if ( $custom_field_name === 'mfn-page-items' && is_string($custom_field_val) ) {
    		$custom_field_val = maybe_unserialize( base64_decode($custom_field_val) );
    	}
    	return $custom_field_val;
    }
    add_filter( 'wpml_decode_custom_field', 'mfn_wpml_decode_custom_field', 10, 2 );
  5. Se hai già iniziato a tradurre le tue pagine, modifica la pagina originale e salva.
  6. Aggiorna la traduzione e il contenuto dovrebbe essere ora disponibile.

Passaggi successivi

Abbiamo contattato gli autori di BeTheme e Muffin Builder, che implementeranno una correzione il prima possibile. Non è necessario che tu faccia nulla in questo momento!

Tutti i problemi noti →