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="https://wordpress.stackexchange.com/questions/65136/<?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!

3 Answers
3

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.

Leave a Reply

Your email address will not be published. Required fields are marked *