You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用i18n翻译WordPress中date_format的月份名称?

解决方案

直接调整date_i18n的参数即可,它的第一个参数就是自定义日期格式,不需要借助get_option('date_format')。另外要注意date_i18n接受的时间参数是Unix时间戳,而你用date_create得到的是DateTime对象,需要转成时间戳再传入。

修正后的完整代码:

// 获取自定义更新日期字段
$custom_update_date = get_post_meta($post->ID, '_cstm_update_post', true);
$PostDate = __('Pubilé le', 'your-text-domain') . ' ' . get_the_date('d F Y');
$PostUpdate = '';

if (!empty($custom_update_date)) {
    $custom_date = date_create($custom_update_date);
    // 把DateTime对象转成时间戳,传入date_i18n并指定自定义格式
    $formatted_update_date = date_i18n('d F Y', $custom_date->getTimestamp());
    $PostUpdate = __('Mis à jour le', 'your-text-domain') . ' ' . $formatted_update_date;
    echo $PostUpdate;
} else {
    echo $PostDate;
}

关键修改点说明:

  • date_i18n的正确用法:第一个参数直接填你要的自定义格式'd F Y',第二个参数传入Unix时间戳(通过$custom_date->getTimestamp()转换),这样既保留了自定义格式,又能让WPML自动翻译月份名称。
  • 增加空值判断:避免自定义字段为空时date_create抛出错误,提升代码健壮性。
  • 文本国际化:把'Pubilé le'和'Mis à jour le'用__()函数包裹,替换your-text-domain为你的主题/插件文本域,这样WPML可以识别并翻译这些固定文本。
  • get_the_date的兼容性:get_the_date本身已经内置了多语言支持(内部调用了date_i18n),所以直接用get_the_date('d F Y')就能保证发布日期的月份也能被正确翻译。

如果后续想让日期格式跟随WP后台的全局设置,只需把'd F Y'替换成get_option('date_format')即可,灵活度拉满。

内容的提问来源于stack exchange,提问作者dragoweb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:39:24