我的侧边栏小部件中的标题以所有语言显示-使用QTranslate

时间:2012-09-14 作者:Will

下面是我的代码,使用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;?>
帖子标题(使用\\u title();)实际上同时出现在所有语言中,即:英语标题法语标题西班牙语标题。

查看HTML源代码可以看到qTranslate标记,这些标记定义了字符串的哪一位是直接输出的语言。IE HTML源是

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

帖子来自自定义帖子类型。

你知道为什么会这样吗?

感谢阅读!

3 个回复
SO网友:Daniel Sachs

Hi还将尝试以下操作:

将此添加到您的函数中。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,所以您甚至可以使用\\uuu()来获取正确的标题或\\u e()来回应它。

SO网友:Simon

我在qTranslate中遇到过类似的问题,您首先应该确保使用the_title() 或者the_title Daniel Sachs建议的过滤器。

因为您的小部件已经在调用the_title() 情况显然不是这样。有几次(特别是在更新WordPress或qTranslate时),我不得不编辑帖子,以便正确显示。尝试编辑受影响的帖子,在选项卡之间切换,然后尝试删除标题并将其重新插入相应字段。奇怪的是,这为我解决了这样的问题。

SO网友:Daniel Sachs

Try using

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

相关推荐

Custom metabox translation

我已经创建了一个自定义的帖子类型,并添加了一些自定义的元数据库,现在我想知道我在我的网站上使用了什么样的翻译插件?我对它们都没有经验,所以我不知道谁会支持我的自定义元数据库,谁不会。