Tengo algo sobre esto en los foros de soporte de WPML, pero pensé que podría preguntar aquí también. Aquí está la información importante: estoy ejecutando una configuración WP Multisite con tipos de publicaciones personalizadas, campos personalizados, todo lo que parece personalizado. En un archivo de plantilla en particular, tengo un bucle secundario que extrae una lista de elementos de un blog diferente. De lo que reuní, cualquier cosa que use la API de WP debe filtrarse solo al idioma actual, pero ninguna de las WP_Query()
funciones que tengo lo está haciendo.
Código relevante:
<?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();
?>
El problema aquí es doble: primero, devuelve resultados de cada idioma en lugar del idioma actual: la misma publicación, tres veces (EN, FR, DE). Segundo, el resultado de get_permalink()
es completamente incorrecto: está escupiendo http://www.mysite.com/blog23name/postname en lugar de http://www.mysite.com/blog23name/lang/posttype/postname , el enlace permanente personalizado que se muestra en la página 'editar publicación'.
¿Algunas ideas?
switch_to_blog()
no pasa por alto los enlaces permanentes para los tipos de publicaciones personalizadas get_permalink()
, lo que lo convierte en un excelente lugar para preguntar al respecto. Sin embargo, gracias por el voto negativo, es mucho más útil que realmente dar una respuesta a una pregunta de 2 meses.