Títulos no meu widget da barra lateral aparecem em todos os idiomas - com qtranslate

4

Então aqui está meu código, usando o 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;?>

Os títulos dos posts (usando the_title ();) estão aparecendo em todos os idiomas ao mesmo tempo, por exemplo: English titleFrench titleSpanish title.

A exibição da fonte HTML mostra que as tags qTranslate que definem qual bit de uma string é para qual idioma está sendo produzido diretamente. IE a fonte HTML é

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

As postagens são de um tipo de postagem personalizado.

Alguma idéia de por que isso pode ser?

Obrigado pela leitura!

    
por Will 14.09.2012 / 12:18

3 respostas

3

Oi também tentarei isso:

Adicione isto às suas funções.php

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

E então:

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

Não tenho idéia de qual versão de qTranslate e WP você tem, então você pode até mesmo usar __ () para obter o título correto ou _e () para ecoar.

    
por Daniel Sachs 18.09.2012 / 12:47
2

Eu tive problemas como esse com o qTranslate, e a primeira coisa que você deve fazer é certificar-se de estar usando the_title() ou o filtro the_title , como sugerido por Daniel Sachs.

Como seu widget já está chamando the_title() , esse não é o caso. Em algumas ocasiões (especificamente durante a atualização do WordPress ou qTranslate) tive que editar as mensagens para que elas fossem exibidas corretamente. Tente editar a postagem afetada, alterne entre as guias e tente excluir e reinserir os títulos nos respectivos campos. Estranhamente, isso resolveu problemas assim para mim.

    
por Simon 17.09.2012 / 20:37
1

Tente usar

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