it-swarm.com.de

Titel in meinem Seitenleisten-Widget werden in allen Sprachen angezeigt - mit qtranslate

Hier ist mein Code mit dem 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;?>

Die Beitragstitel (mithilfe von the_title ();) werden tatsächlich in allen Sprachen gleichzeitig angezeigt, z.

Das Anzeigen der HTML-Quelle zeigt, dass die qTranslate-Tags, die definieren, welches Bit eines Strings für welche Sprache bestimmt ist, direkt ausgegeben werden. IE die HTML-Quelle ist

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

Die Beiträge stammen von einem benutzerdefinierten Beitragstyp.

Irgendwelche Ideen, warum das sein könnte?

Danke fürs Lesen!

4
Will

Hi Will auch mal probieren:

Fügen Sie dies Ihrer functions.php hinzu

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

Und dann:

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

Habe keine Ahnung, welche Version von qTranslate und WP du hast, also kannst du sogar __ () verwenden, um den richtigen Titel zu erhalten, oder _e (), um ihn wiederzugeben.

3
Daniel Sachs

Bei qTranslate sind solche Probleme aufgetreten. Als Erstes sollten Sie auf jeden Fall sicherstellen, dass Sie the_title() oder den the_title-Filter verwenden, wie von Daniel Sachs vorgeschlagen.

Da Ihr Widget bereits the_title() aufruft, ist dies eindeutig nicht der Fall. In einigen Fällen (insbesondere beim Aktualisieren von WordPress oder qTranslate) musste ich die Beiträge bearbeiten, damit sie korrekt angezeigt werden. Versuchen Sie, den betroffenen Beitrag zu bearbeiten, zwischen den Registerkarten zu wechseln und die Titel zu löschen und erneut in die entsprechenden Felder einzufügen. Komischerweise hat das Probleme wie diese für mich gelöst.

2
Simon

Versuchen Sie es mit

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