Los títulos en el widget de mi barra lateral aparecen en todos los idiomas, con qtranslate

4

Aquí está mi código, usando el complemento qTranslate:

    query_posts(array('post_type' => 'uk_blog', 'numberposts' => 2));
    $i = 0; while(have_posts()): the_post($post);?>
    <div class="third-column"<?php if ($i == 1) echo ' style="margin-right:0;"';?>>
        <h2><a href="<?php get_permalink($post->ID);?>"><?php the_title();?></a></h2>
        <div class="inner">
            <?php $length = strlen(get_the_content());
            echo nl2br(substr(strip_tags(get_the_content()), 0, 500));
            if ($length > 500){
                echo '...<br /><a href="' . get_permalink($post->ID) . '">Read more</a>';
            }
            ?>
        </div>
    </div>
    <?php $i++; endwhile;?>

Los títulos de las publicaciones (con the_title ();) aparecen en todos los idiomas al mismo tiempo, es decir: título en inglés Título francés Título francés.

Ver el código fuente HTML muestra que las etiquetas qTranslate que definen qué bit de una cadena es para qué idioma se emiten directamente. IE la fuente HTML es

<!--:en-->English title<!--:--><!--:fr-->French title<!--:-->

Las publicaciones son de un tipo de publicación personalizada.

¿Alguna idea de por qué esto podría ser?

¡Gracias por leer!

    
pregunta Will 14.09.2012 - 12:18

3 respuestas

3

Hola, también intentaré esto:

Añade esto a tus funciones.php

function get_qTrans_TitleText($text) {
  $language=qtrans_getLanguage();
  preg_match('/<!--:'.$language.'-->(.*?)<!--:-->/', $text, $matches);
  return strip_tags($matches[0]);
}

Y luego:

<?php echo get_qTrans_TitleText($text); ?>

No tienes idea de qué versión de qTranslate y WP tienes, por lo que incluso puedes usar __ () para obtener el título correcto o _e () para repetirlo.

    
respondido por el Daniel Sachs 18.09.2012 - 12:47
2

He experimentado problemas como este con qTranslate, y lo primero que debes hacer definitivamente es asegurarte de que estás utilizando the_title() o el filtro the_title , como lo sugiere Daniel Sachs.

Ya que tu widget ya está llamando a the_title() , claramente no es el caso. En algunas ocasiones (específicamente al actualizar WordPress o qTranslate) he tenido que editar las publicaciones para que se muestren correctamente. Intente editar la publicación afectada, cambie entre las pestañas e intente eliminar y volver a insertar los títulos en los campos respectivos. Curiosamente, eso ha resuelto problemas como este para mí.

    
respondido por el Simon 17.09.2012 - 20:37
1

Intenta usar

<h2>
    <a href="<?php get_permalink($post->ID);?>">
        <?php echo apply_filters('the_title', $post->post_title); ?>
    </a>
</h2>
    
respondido por el Daniel Sachs 17.09.2012 - 11:40

Lea otras preguntas en las etiquetas