Titles in my sidebar widget appear in all languages – with qtranslate

So here’s my code, using the qTranslate plugin:

    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;?>

The post titles (using the_title();) are actually appearing in all languages at the same time, ie: English titleFrench titleSpanish title.

Viewing the HTML source shows that the qTranslate tags that define which bit of a string is for which language are being directly outputted. IE the HTML source is

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

The posts are from a custom post type.

Any ideas why this might be?

Thanks for reading!

Solutions Collecting From Web of "Titles in my sidebar widget appear in all languages – with qtranslate"

Hi Will also try this:

Add this to your functions.php

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

And then:

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

Have no Idea what version of qTranslate and WP you have so you may even use __() to get the correct title or _e() to echo it.

I’ve experienced issues like this with qTranslate, and the first thing you should do definitely is to make sure that you are using the_title() or the the_title filter, as suggested by Daniel Sachs.

Since your widget is already calling the_title() that’s clearly not the case. On a few occasions (specifically while updating WordPress or qTranslate) I have had to edit the posts in order for them to display correctly. Try to edit the affected post, switch between the tabs and try deleting and reinserting the titles into the respective fields. Weirdly enough, that has solved problems like this for me.

Try using

<h2>
    <a href="<?php get_permalink($post->ID);?>">
        <?php echo apply_filters('the_title', $post->post_title); ?>
    </a>
</h2>