だからここに私のコードは、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;?>
投稿のタイトル(the_title()を使用)は、実際には同時にすべての言語で表示されます。つまり、英語のタイトルフランス語タイトルスペイン語のタイトルです。
HTMLソースを表示すると、文字列のどのビットがどの言語に対応しているかを定義するqTranslateタグが直接出力されていることがわかります。 HTMLソースはIE
<!--:en-->English title<!--:--><!--:fr-->French title<!--:-->
投稿はカスタム投稿タイプからのものです。
なぜこれがあるかもしれないという考えはありますか?
読んでくれてありがとう!
こんにちはまたこれを試してみます:
これをあなたのfunctions.phpに加えてください
function get_qTrans_TitleText($text) {
$language=qtrans_getLanguage();
preg_match('/<!--:'.$language.'-->(.*?)<!--:-->/', $text, $matches);
return strip_tags($matches[0]);
}
その後:
<?php echo get_qTrans_TitleText($text); ?>
QTranslateとWPのどのバージョンがあるのかわからないので、正しいタイトルを取得するには__()を、それをエコーするには_e()を使用することもできます。
私はqTranslateでこのような問題を経験しました。最初にすべきことは、Daniel Sachsが示唆しているように、the_title()
またはthe_title
フィルターを確実に使用することです。
あなたのウィジェットは既にthe_title()
を呼び出しているので、それは明らかにそうではありません。いくつかの場面で(特にWordPressやqTranslateの更新中に)私はそれらが正しく表示されるように投稿を編集しなければなりませんでした。影響を受ける投稿を編集し、タブを切り替えて、タイトルを削除してそれぞれのフィールドに再挿入してみてください。奇妙なことに、それは私にとってこのような問題を解決しました。
使ってみる
<h2>
<a href="<?php get_permalink($post->ID);?>">
<?php echo apply_filters('the_title', $post->post_title); ?>
</a>
</h2>