Les titres de mon widget de barre latérale apparaissent dans toutes les langues - avec qtranslate

4

Alors voici mon code, en utilisant le plugin 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;?>

Les titres de publication (à l’aide de the_title ();) apparaissent dans toutes les langues en même temps, c’est-à-dire: titre anglais, titre français, titre espagnol.

Voir la source HTML montre que les balises qTranslate qui définissent le bit d’une chaîne de caractères pour quelle langue sont directement sorties. IE la source HTML est

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

Les publications proviennent d'un type de publication personnalisé.

Avez-vous des idées pour expliquer cela?

Merci d'avoir lu!

    
posée Will 14.09.2012 - 12:18

3 réponses

3

Bonjour, essayez aussi ceci:

Ajoutez ceci à votre functions.php

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

Et ensuite:

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

Vous ne savez pas quelle version de qTranslate et de WP vous avez afin que vous puissiez même utiliser __ () pour obtenir le titre correct ou _e () pour y revenir.

    
réponse donnée Daniel Sachs 18.09.2012 - 12:47
2

J'ai eu ce genre de problèmes avec qTranslate, et la première chose à faire est de vous assurer que vous utilisez the_title() ou le filtre the_title , comme suggéré par Daniel Sachs.

Puisque votre widget appelle déjà the_title() , ce n'est clairement pas le cas. À quelques reprises (notamment lors de la mise à jour de WordPress ou de qTranslate), j'ai dû modifier les articles pour qu'ils s'affichent correctement. Essayez de modifier la publication concernée, basculez entre les onglets et essayez de supprimer et de réinsérer les titres dans les champs respectifs. Bizarrement, cela a résolu de tels problèmes pour moi.

    
réponse donnée Simon 17.09.2012 - 20:37
1

Essayez d'utiliser

<h2>
    <a href="<?php get_permalink($post->ID);?>">
        <?php echo apply_filters('the_title', $post->post_title); ?>
    </a>
</h2>
    
réponse donnée Daniel Sachs 17.09.2012 - 11:40

Lire d'autres questions sur les étiquettes