WPML con WP_Query que sirve los 3 idiomas [cerrado]

8

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?

SickHippie
fuente
1
OMI, no es justo hacer preguntas sobre complementos premium aquí ...
brasofilo
"No es justo"? ¿En qué manera? ¿Por qué habría una etiqueta para WPML si no se puede preguntar aquí? Consulte las preguntas frecuentes nuevamente, amigo. Está licenciado bajo la GPL (incluso la versión premium), por lo que técnicamente podría publicar cualquier fragmento de código relevante para que otros lo vean para solucionar problemas. Dicho esto, al menos uno de los problemas es un problema central de WordPress, 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.
SickHippie
¿Tienen una "versión gratuita"? Si lo hacen, lo siento, no estaba al tanto ... Si no lo hacen, tener una etiqueta no excusa a ninguna GPL ...
brasofilo
2
Sí, debería haberlo llevado al Meta antes de votar, ahora no puedo deshacerlo. Gracias por claryfying, @Bainternet. SickHippie, parece que todavía no has recibido una respuesta en su foro, espero que tengas un buen alma, mientras revisas viejas preguntas, tropiezas con esta y la votas. Saludos y perdón por el error.
brasofilo
55
@brasofilo - no te preocupes, amigo. Ayer estuve un poco estresado y me disculpé por mi actitud agresiva. No fue solicitado, y lo siento mucho.
SickHippie

Respuestas:

2

Mi solución fue registrar los tipos de publicaciones personalizadas en el sitio desde donde lo llamo, luego, en la configuración de WPML, configúrelos para traducir. Esto está en WPML -> Gestión de traducciones -> Configuración de contenido multilingüe, abajo en la parte inferior. Supongo que funciona engañando a WP para que use las reglas de reescritura / traducción de ese sitio cuando no tiene la información adecuada switch_to_blog().

SickHippie
fuente