Ho qualcosa a riguardo nei forum di supporto di WPML, ma ho pensato di poterlo chiedere anche qui. Ecco le informazioni importanti: sto eseguendo una configurazione WP Multisite con tipi di post personalizzati, campi personalizzati, tutto ciò che sembra personalizzato. In un particolare file modello, ho un ciclo secondario che estrae un elenco di elementi da un blog diverso. Da quello che ho raccolto, tutto ciò che utilizza l'API WP dovrebbe essere filtrato solo nella lingua corrente, ma nessuna delle WP_Query()
funzioni che ho lo sta facendo.
Codice rilevante:
<?php
switch_to_blog(23);
$args = array('post_type' => 'release-notes',
'suppress_filters' => 0,
'meta_query' => array(
array(
'key' => 'related_products',
'value' => $thisproduct,
'compare' => 'LIKE'
)
)
);
$loop = new WP_Query($args);
if ($loop->have_posts()) {
echo '<h2>Release Notes</h2>';
while ( $loop->have_posts() ) : $loop->the_post();
//echo '<pre>';
//print_r($post);
//echo '</pre>';
$post_link = ($post->post_name);
echo '<p><a class="text-link" href="' . get_permalink() . '">' . get_the_title() . '</a></p>';
endwhile; // foreach($posts
} // if ($results
restore_current_blog();
?>
Il problema qui è duplice: in primo luogo, restituisce risultati da ogni lingua anziché dalla lingua corrente - lo stesso post, tre volte (EN, FR, DE). In secondo luogo, il risultato get_permalink()
è completamente sbagliato - sta sputando http://www.mysite.com/blog23name/postname invece di http://www.mysite.com/blog23name/lang/posttype/postname - il permalink personalizzato mostrato su la pagina "modifica post".
Qualche idea?
switch_to_blog()
non passa i permalink per i tipi di post personalizzati con get_permalink()
- rendendolo un ottimo posto per chiederlo. Grazie per il downvote, tuttavia, è molto più utile che trovare una risposta a una domanda di 2 mesi.