首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义邮政类型的QTranslate

自定义邮政类型的QTranslate
EN

WordPress Development用户
提问于 2013-05-01 00:55:43
回答 1查看 5.2K关注 0票数 0

如何添加对自定义post类型的qtranslate支持?只需保存带有标签的文本或添加标志开关。

“我的自定义邮政类型”字段:

代码语言:javascript
复制
add_meta_box('project_rolesid', 'Roles box', 'project_roles', 'portfolio', 'normal');
<textarea id="portfolio_project_roles" cols="80" rows="7" name="portfolio_project_roles">'.$roles.'</textarea>

试图通过添加行来添加支持

代码语言:javascript
复制
add_action('portfolio_project_roles','qtrans_useCurrentLanguageIfNotFoundShowAvailable', 0);

qtranslate_hooks.php中,但没有效果。

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2013-05-07 08:55:20

使用标记非常简单。qTranslate中的所有数据都存储在特殊的<!--:lang-->content<!--:-->标记之间,其中lang是该语言的代码,如enrude等。

post编辑UI是通过qTranslate的重型JavaScript进行更改的。JavaScript分析预置字段的内容并创建新控件。在保存相同的JavaScript之前,相反,合并UI字段并将它们包装到上面的标记中。这种简单的行为可以通过从自定义post类型代码中注入额外的JavaScript来复制,以便将您的自定义字段拆分为您需要的多种语言,然后将它们合并在一起,使用全反式_集成_*全反式_保存和其他现有的杂乱无章作为您自己代码的指南。

同样,这非常简单--在您的#portfolio_project_roles中使用拆分标记,为每种语言创建#portfolio_project_roles_{lang}文本区域并填充拆分的内容,然后将合并保存回一个#portfolio_project_roles,将每个内容语言有效负载包装到标记中。

保存后,数据库中的自定义post类型元数据将如下所示,例如:"portfolio_roles" => "<!--:en-->Vladimir - Project Lead<!--:--><!--:ru-->Владимир - куратор проекта<!--:-->"。要根据语言显示这些数据的块,您必须使用qTranslate提供的几个过滤器,主要是:qtrans_useCurrentLanguageIfNotFoundShowAvailable等,甚至直接使用qtrans_use

代码语言:javascript
复制
<div id="content>
    <?php echo qtrans_useCurrentLanguageIfNotFoundShowAvailable(
                get_post_meta( get_the_ID(), 'portfolio_roles', true ) ) );
    ?>
</div>

这将输出正确的语言拆分负载(不要忘记使用esc_html转义输出)。

一种更清晰的方法是使用meta filter并将其挂在qtrans_use*函数上。我相信还有其他有趣的方法可以采用,但上面的内容应该为您提供了关于事情如何工作的基本大纲。希望这能有所帮助。

票数 3
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/97889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档