Salta la navigazione

Questo thread è stato risolto. Ecco una descrizione del problema e della soluzione.

Problema:
Se stai riscontrando la duplicazione degli articoli tradotti visualizzati in entrambe le lingue sul tuo sito, il problema potrebbe essere dovuto alla mancanza di filtri per la lingua nel codice che gestisce la visualizzazione degli articoli.
Soluzione:
Per risolvere questo problema, dovresti aggiungere alcuni filtri specifici per WPML nel tuo array di argomenti quando recuperi gli articoli. Modifica il tuo codice come segue:

$current_language = apply_filters('wpml_current_language', NULL);
$args = array(
    'numberposts'   => -1, // -1 per tutti
    'post_type'     => 'annunci', // oppure 'post', 'page'
    'orderby'       => 'date', // oppure 'date', 'rand'
    'order'         => 'DESC', // oppure 'DESC'
    'suppress_filters' => false, // Assicurati che WPML filtri i risultati
    'lang'          => $current_language, // Filtra per lingua corrente
);

Questo codice assicura che gli articoli vengano filtrati per la lingua corrente, evitando così la duplicazione nei risultati. Per ulteriori dettagli, consulta la pagina degli hook di WPML.

Se questa soluzione non dovesse essere più rilevante o non risolvere il tuo problema, ti consigliamo di aprire un nuovo ticket di supporto. Ti raccomandiamo inoltre di verificare la presenza di problemi noti correlati su https://wpml.org/known-issues/, di controllare la versione della correzione permanente e di assicurarti di avere installato le ultime versioni dei temi e dei plugin.

Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.

La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.

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.

Etichettato: 

Questo ticket contiene 5 risposte, ha 2 voci.

Ultimo aggiornamento da Laura 1 mese, 3 settimane fa.

Assistito da: Laura.

Autore Messaggi
Luglio 29, 2024 a 1:24 pm #16016238

fidital-revisione-s.r.l.P

Background of the issue:
tradurre degli articoli personalizzati

Symptoms:
gli articoli tradotti risultano duplicati, in entrambe le lingue.

Questions:
Come fare per eliminare il problema?

Luglio 29, 2024 a 2:27 pm #16016642

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

Salve,

grazie per averci contattato.

Non ho capito cosa significa "gli articoli tradotti risultano duplicati".

Comunque dovresti aumentare il WP Memory Limit e manca l'estensione MBString.

Luglio 29, 2024 a 3:22 pm #16016999

fidital-revisione-s.r.l.P

Buonasera,

per il WP Memory Limit ho inserito la stringa nel file wp-config.php di wordpress, ma sembra non recepire la modifica (temo sia impostato a monte dal mio hosting). Vedi allegato.

Per l'MBString ho risolto da CPanel. Vedi allegato.

Per quanto riguarda la duplicazioni degli articoli cerco di ampliare il contesto.
Nel sito ci sono due tipologie di articoli custom (annunci e annunci_cons). Quando traduco uno di questi, a front-end lo vedo duplicato sia in inglese che in italiano. Vedi allegato.

Grazie.

duplicated.png
MBS.png
wp_memory_limit.png
Luglio 29, 2024 a 4:10 pm #16017208

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

Cosa usi per mostrare gli articoli nel front end? Molto probabilmente non filtra gli articoli per lingua

Luglio 30, 2024 a 7:14 pm #16022115

fidital-revisione-s.r.l.P

Ti incollo qui il codice:

<section id="annunci-area">
		<?php 
			$args = array( 
				'numberposts'	=> -1, // -1 is for all
				'post_type'		=> 'annunci', // or 'post', 'page'
				'orderby' 		=> 'date', // or 'date', 'rand'
				'order' 		=> 'DESC', // or 'DESC'
				//'category' 		=> $category_id,
				//'exclude'		=> get_the_ID()
				// ...
				// http://codex.wordpress.org/Template_Tags/get_posts#Usage
			);

			// Get the posts
			$myposts = get_posts($args);

			// If there are posts
			if($myposts):
				// Loop the posts
				foreach ($myposts as $mypost):
		?>
		
		<div class="container-fluid annuncio-item-box">
			<div class="row">
				<div class="col-lg-6 box-annuncio-left">
					<div class="red-box"></div>
					<div class="unit-box">
						<h4 class="primary">area <br>
							<?php if( get_field('area', $mypost->ID) ): ?>
								<?php the_field('area', $mypost->ID); ?>
							<?php endif; ?>
						</h4>
					</div>
				</div>
				<div class="col-lg-6 box-annuncio-right">
					<h4 class="high"><?php _e("Posizione</h4>", 'tr_common'); ?>
					<h2 class="big-secondary">
						<?php if( get_field('post_title', $mypost->ID) ): ?>
							<?php the_field('post_title', $mypost->ID); ?><span class="rouge"> :</span>
						<?php endif; ?>
					</h2>
					<h4 class="high"><?php _e('Sede', 'tr_common'); ?></h4>
					<p class="secondary">
						<?php if( get_field('sede_text_1', $mypost->ID) ): ?>
							<?php the_field('sede_text_1', $mypost->ID); ?>
						<?php endif; ?>
					</p>
					<?php if( get_field('sede_text_2', $mypost->ID) ): ?>
					<p class="secondary">
						<?php the_field('sede_text_2', $mypost->ID); ?>
					</p>
					<?php endif; ?>
					<a class="link-high" href="<?php the_permalink($mypost->ID); ?>">
						<?php _e('Scopri di più', 'tr_common'); ?>
					</a>
					<div class="icon-arrow-right"></div>
					<div class="icon-position"></div>
				</div>
			</div>
		</div>

		<?php endforeach; wp_reset_postdata(); ?>
		<?php endif; ?>
	</section>
Luglio 31, 2024 a 6:57 am #16023124

Laura
Supporter

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

Come avevo supposto non ci sono i filtri per WPML, quindi è normale che ti faccia vedere i post in tutte le lingue.

Prova a modificare l'array iniziale così

        // Imposta la lingua corrente
        $current_language = apply_filters('wpml_current_language', NULL);

        $args = array( 
            'numberposts'   => -1, // -1 per tutti
            'post_type'     => 'annunci', // oppure 'post', 'page'
            'orderby'       => 'date', // oppure 'date', 'rand'
            'order'         => 'DESC', // oppure 'DESC'
            'suppress_filters' => false, // Assicurati che WPML filtri i risultati
            'lang'          => $current_language, // Filtra per lingua corrente
        );

     

1. apply_filters('wpml_current_language', NULL): Questo hook recupera la lingua corrente impostata da WPML.
2. 'suppress_filters' => false: Questo assicura che WPML possa filtrare i post in base alla lingua.
3. 'lang' => $current_language: Questo imposta la lingua corrente nei parametri della query.

Per ulteriori informazioni ti rimando alla pagina degli hook di WPML.

Questo ticket è stato chiuso. Se sei un cliente di WPML e hai bisogno di aiuto, apri un nuovo ticket di assistenza.