Problema con WP_Query e Polylang
Nel tema che sto sviluppando, ho un template che mostra 5 post utilizzando il loop standard:
<?php
$my_query = new WP_Query('showposts=5');
while ($my_query->have_posts()) : $my_query->the_post(); ?>
e così via...
C'è una pagina (Actualités) che utilizza questo template. Ora ho aggiunto Polylang e ho creato un'altra pagina (News) che utilizza lo stesso template. Non ci sarà una traduzione in inglese per gli articoli del blog, ma vorrei comunque che i lettori di lingua inglese vengano indirizzati alla pagina News che sarà "la stessa" di Actualités (in francese).
Avrei pensato che la query sopra producesse lo stesso risultato indipendentemente dalla pagina che utilizza il template, ma in realtà la pagina francese funziona bene, mentre in News non vedo alcun post. Qualche idea?

OK - Ho capito, i vecchi post già presenti nel database NON hanno una traduzione in inglese e questo è il problema con il mio loop. Quando aggiungo un nuovo post, ho la possibilità di fornire una traduzione che poi compare nella pagina inglese.
Guardando la documentazione ho scoperto che posso anche mostrare il contenuto di default quando non c'è una traduzione con qualcosa del tipo:
<?php query_posts(array('post_type' => 'post','lang' => 'fr')); // forza la query per i post in francese ?>
if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php global $post;
if($post_id = pll_get_post($post->ID, pll_current_language())) { // ottieni il post tradotto (nella lingua corrente) se esiste
$post = get_post($post_id);
setup_postdata($post);
}?>
... fai quello che vuoi nel tuo loop ...

Non è più semplice così?
$paged = get_query_var('page') ?: 1;
$args = array(
's' => get_search_query(), // Query di ricerca
'posts_per_page' => 8, // Numero di post per pagina
'paged' => (int) $paged, // Pagina corrente
'fields' => 'ids', // Restituisce solo gli ID
'post_type' => array('any'), // Tutti i tipi di post
'tax_query' => array( // Query tassonomica
array(
'taxonomy' => 'language', // Tassonomia
'field' => 'slug', // Campo
'terms' => pll_current_language(), // Termine corrente
)
),
);
$query = new WP_Query( $args ); // Esegui la query

La tua risposta potrebbe essere migliorata con ulteriori informazioni di supporto. Per favore [modifica] per aggiungere maggiori dettagli, come citazioni o documentazione, in modo che altri possano confermare che la tua risposta è corretta. Puoi trovare maggiori informazioni su come scrivere buone risposte nel centro assistenza.
