This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Nessun supporter è disponibile a lavorare oggi sul forum Italian. Sentitevi liberi di creare ticket e li gestiremo il prima possibile quando saremo online. Grazie per la comprensione.

This topic contains 7 risposte, has 2 voci.

Last updated by Alejandro 2 mesi, 2 settimane fa.

Assigned support staff: Alejandro.

Autore Post
July 30, 2019 at 6:07 pm

gianlucaM-21

Salve, ho un problema con la visualizzazione dei campi personalizzati di ACF pro nel mio articolo tradotto in inglese, in sostanza ho un set di campi per un articolo in italiano che vengono mostrati correttamente in area admin e frontend ma quando faccio la traduzione (ho provato tutte le strade possibili) i campi personalizzati mi vengono mostrati nell'area admin dell'articolo tradotto e non nella pagina web lato frontend.
Si tratta di un single.php personalizzato ovvero che mostra un template customizzato e che fa il display dei campi personalizzati con un codice come il seguente:

<?php $value = get_field( "ruolo" );

if( $value ) {
    
    echo ('<tr><td style="color: #2b5b87">Ruolo</td><td>'), $value, ('</td></tr>');

} else {

    echo '';
    
} ?>

Per quanto riguarda le impostazioni dei campi personalizzato ho provato ad impostare i campi di ACF sia come copia che copia una volta che traduci... ma in tutti i casi non riesco a vederli nella pagina web (solo in area admin).

Potete darmi indicazioni in merito?
Grazie
Gianluca

July 31, 2019 at 6:40 am #4311841

gianlucaM-21

Aggiungo qualche informazione. Ho provato a seguire la guida https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/ senza tuttavia cambiamenti nel risultato.
Nel template del file single-category-team.php, il modello che utilizzo per il post che fa parte della categoria "Team" utilizzo un codice di questo tipo:

<?php get_header(); ?>

<div class="row expanded"><div class="title-container"><h1 class="titolo-interno"><?php the_title(); ?></h1></div></div>
<div class="row expanded team" id="contenuti">
<div class="breadcrumbs" style="border-top: 1px solid #efefef; border-bottom: 1px solid #efefef; width:100%; padding:5px 0;"><?php if(function_exists('bcn_display')) { bcn_display(); }?></div>
<?php // Start the Loop. 
	while ( have_posts() ) : the_post();?>
	
		<div class="show-for-small-only"><?php 
			 global $post; $post->ID;
			 if ( has_post_thumbnail() ) {the_post_thumbnail($post->ID, 'thumbnail');} 
								else { ?>
								<img src="<?php bloginfo('template_directory'); ?>/images/default-image-rosso.jpg" alt="<?php the_title(); ?>" />
								<?php } ?></div>	
	<table>
	<tbody>
	<tr class="hide-for-small-only">
	<th rowspan="7" style="width:250px">
		<?php 
			 global $post; $post->ID;
			 if ( has_post_thumbnail() ) {the_post_thumbnail($post->ID, 'thumbnail');} 
								else { ?>
								<img src="<?php bloginfo('template_directory'); ?>/images/default-image-rosso.jpg" alt="<?php the_title(); ?>" />
								<?php } ?>				
										 
	</th>
	 
				
 </tr>
		<?php $value = get_field( "ruolo" );

if( $value ) {
    
    echo ('<tr><td style="color: #2b5b87">Ruolo</td><td>'), $value, ('</td></tr>');

} else {

    echo '';
    
} ?>
	<?php $value = get_field( "qualifica" );

if( $value ) {
    
    echo ('<tr><td style="color: #2b5b87">Qualifica</td><td>'), $value, ('</td></tr>');

} else {

    echo '';
    
} ?>
		<?php $value = get_field( "telefono" );

if( $value ) {
    
    echo ('<tr><td style="color: #2b5b87">Telefono</td><td>'), $value, ('</td></tr>');

} else {

    echo '';
    
} ?>
		<?php $value = get_field( "email" );

if( $value ) {
    
    echo ('<tr><td style="color: #2b5b87">Email</td><td>'), $value, ('</td></tr>');

} else {

    echo '';
    
} ?>
		
<?php 

$file = get_field('cv');

if( $file ): ?>
	
	<tr><td style="color: #2b5b87">C.V.</td><td><a href="<?php echo $file['url']; ?>"><?php echo $file['filename']; ?></a></td></tr>

<?php endif; ?>
	
	<?php endwhile; ?>
	</tbody>
</table>
<div class="small-12 columns">
<?php the_content(); ?>
</div>
</div>

			

<?php get_footer(); ?>

Allego due immagini di come viene mostrata la pagina, ok in italiano, senza i campi personalizzati in inglese...

C'è un problema anche sull'immagine in evidenza che viene mostrata solo sulla versione default dell'articolo (IT)

July 31, 2019 at 8:58 am #4313083

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Ciao!
Benvenuto al supporto cliente WPML.
Farò del mio meglio per aiutarti a risolvere questo problema.

Allora, per quello che vedo, il problema sembra essere che il "value" viene a 0/false/null quando passi da una lingua ad un altra, quindi prova a fare un var_dump al $value per vedere cosa compare in quella pagina e fammi sapere.

In più, per ora ti consiglio di aggiungere un testo placeholder per ogni campo in caso la condizione dell' IF non sia "true", così anche puoi vedere se al meno il codice fa un output anche generico di ogni campo (quindi aggiungi un testo caratteristico ad ogni campo stile "Ruolo non trovato, CV Non trovato", ecc).

Il codice sembra essere corretto a prima vista, e ho dato una occhiata alla configurazione e anche se alcuni campi sono in "translate" quando dovrebbero essere in "copia" questo non cambia molto la situazione, visto che hai detto che in precedenza hai provato anche con "copia".

Fammi sapere come va.

July 31, 2019 at 12:14 pm #4314213

gianlucaM-21

Ciao, grazie per la risposta.
Ho provato ad integrare un messaggio in caso di if false e ho provato a mettere un var_dump (su questo non sono sicuro che il codice sia corretto):

		<?php $value = get_field( "email" );

if( $value ) {
    
    echo ('<tr><td style="color: #2b5b87">Email</td><td>'), $value, ('</td></tr>');

} else {

    echo 'non specificato';
    
}
var_dump($value);
 ?>

Tuttavia non ho visto cambiamenti.

July 31, 2019 at 1:49 pm #4314899

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Allora facciamo 2 cose:

1) Per favore, aggiungi questo codice nel tuo file wp-config.php, subito dopo l'informazione del database

define('WP_MEMORY_LIMIT','128M');

Perché vedo che stai usando 50+M e invece il sistema ha allocato 40M quindi sicuramente qualcosa non funziona bene per questo motivo

2) Mi potresti dire come si chiama il file dove hai inserito queste modifiche perché non riesco proprio a vederle nel back-end

Grazie in anticipo.

July 31, 2019 at 2:56 pm #4315533

gianlucaM-21

Ciao Alejandro,
ho risolto!
Ho inserito il define wp memory limit a 128M, e questo era importante.
Ma il problema stava nel fatto che non era stato creato il template single-category-team-en.php ovvero il template per la categoria tradotta dall'italiano all'inglese... il mio file single-category-team.php non era pertanto in grado di riconoscere i campi personalizzati.

Grazie mille per la disponibilità ed il supporto.

Gianluca

July 31, 2019 at 2:56 pm #4315535

gianlucaM-21

My issue is resolved now. Thank you!

July 31, 2019 at 3:15 pm #4315875

Alejandro
Supporter

Languages: Inglese (English ) Spagnolo (Español ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Grazie mille per averci indicato come hai risolto il problema. questa soluzione sarà utile per le altre persone che riscontreranno problemi simili nel futuro.

Saluti e buona giornata.