WordPress问题:get_the_date无法将月份名称转换为其他语言?
解决WordPress日期显示英文的问题
看起来你已经调整了站点语言设置,但日期里的月份缩写还是没翻译对吧?先说说你之前代码里的问题:你把_e('d M')传给get_the_date是不对的——_e()函数是直接输出翻译内容的,它不会返回值给get_the_date用,而且get_the_date的参数是日期格式符,不是已经翻译好的字符串。
下面给你几个靠谱的解决办法:
方法1:先确认语言包是否正确生效
首先排查基础设置:
- 进入后台「设置」→「常规」,检查「站点语言」是否已经设为你需要的语言
- 如果语言包没自动安装,点击「站点语言」下拉框里的「安装语言包」按钮,等待安装完成后保存设置
有时候语言包没装好,就算改了设置也不会生效,这一步很关键。
方法2:用date_i18n替代get_the_date(更可靠的国际化方案)
get_the_date在某些主题或场景下可能不会自动触发本地化翻译,这时候可以用WordPress专门的国际化日期函数date_i18n,它会自动根据站点语言翻译月份、星期这些内容:
<?php echo esc_html(date_i18n('d M', get_post_time('U', false))); ?>
简单解释下参数:
get_post_time('U', false):获取当前文章的时间戳(U代表时间戳格式,false表示用站点本地时间而非UTC时间)date_i18n:会自动识别站点语言,把格式符里的M(月份缩写)翻译成对应语言的内容
方法3:自定义日期格式(按需调整)
如果你想要更灵活的显示效果,比如显示完整月份名,可以直接修改date_i18n里的格式符,举个例子:
- 要显示「05 五月」(中文)或对应语言的完整月份:
date_i18n('d F', get_post_time('U', false)) - 格式符的规则和PHP原生
date函数一致,但date_i18n会自动处理本地化翻译
最后再提醒一句:别用_e()或者__()去包裹日期格式符,这些函数是用来翻译静态文本的,日期的本地化翻译交给date_i18n就足够啦。
内容的提问来源于stack exchange,提问作者Tolga
相关产品推荐
相关产品推荐

