
本文详解在 wordpress 主题的 template-tags.php 中将 “last updated on” 和 “posted on” 安全替换为阿拉伯语(如“آخر تحديث في”和“نشر على”)的方法,解决乱码()问题,涵盖 utf-8 编码设置、html 实体转义、函数选择及前端验证要点。
本文详解在 wordpress 主题的 template-tags.php 中将 “last updated on” 和 “posted on” 安全替换为阿拉伯语(如“آخر تحديث في”和“نشر على”)的方法,解决乱码()问题,涵盖 utf-8 编码设置、html 实体转义、函数选择及前端验证要点。
在 WordPress 主题开发中,本地化日期提示文本(如 “Last updated on” 和 “Posted on”)为阿拉伯语时,直接硬编码中文或阿拉伯字符常导致显示为乱码(如 ``)。这并非逻辑错误,而是典型的字符编码不匹配问题——PHP 文件本身、HTTP 响应头与 HTML 文档声明需统一为 UTF-8。
✅ 推荐方案:使用 htmlentities() 进行安全转义(首选)
这是最稳妥的方式,能确保阿拉伯字符在任何服务器环境和浏览器中正确渲染:
<?php if ( get_theme_mod('show_post_date', '1') == 1 ) : ?><div class="entry-date">
<i class="fa fa-clock-o"></i><span>
<?php $u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 60) {
// 阿拉伯语:آخر تحديث في → "Last updated on"
$text = 'آخر تحديث في';
echo htmlentities($text, ENT_QUOTES, 'UTF-8');
the_modified_time('Y-m-d');
} else {
// أَرَبِيّة: نشر على → "Posted on"
$text = 'نشر على';
echo htmlentities($text, ENT_QUOTES, 'UTF-8');
the_time('Y-m-d');
}
?>
</span>
</div>
<?php endif; ?>
? 关键说明:
- ENT_QUOTES 确保单双引号也被转义,避免 HTML 结构破坏;
- 显式指定 'UTF-8' 字符集是必须的,否则 htmlentities() 可能默认使用 ISO-8859-1,导致阿拉伯字符解析失败;
- 请确认你的 template-tags.php 文件本身以 UTF-8 无 BOM 格式保存(推荐使用 VS Code、Sublime Text 或 Notepad++ 设置编码后保存)。
⚠️ 备选方案:utf8_encode()(仅限 ISO-8859-1 源环境,不推荐)
utf8_encode() 实际上是将 ISO-8859-1 编码字符串转换为 UTF-8,若源文件已是 UTF-8,则调用该函数反而可能引发双重编码,造成乱码。因此仅在极少数老旧服务器环境下临时使用:
生产级WordPress REST API集成,用于管理文章、页面、媒体、WooCommerce产品、Elementor内容、SEO元数据、ACF及JetEngine字段
// ❌ 不推荐:除非明确知道文件是 Latin-1 编码
echo utf8_encode('آخر تحديث في');
现代 WordPress 环境下,请优先使用 htmlentities() 方案。
? 必查项:前端编码一致性
即使 PHP 层处理正确,前端仍可能显示乱码。请逐项验证:
-
header.php 中必须包含 UTF-8 声明(位于 内):
<meta charset="utf-8">
-
WordPress 数据库连接需启用 UTF-8:检查 wp-config.php 是否含:
define('DB_CHARSET', 'utf8mb4'); define('DB_COLLATE', 'utf8mb4_unicode_ci'); -
字体支持:确保主题 CSS 中正文使用支持阿拉伯语的字体,例如:
body, .entry-date span { font-family: "Tajawal", "Segoe UI", "Helvetica Neue", sans-serif; }
✅ 最终验证步骤
- 清空 WordPress 缓存(包括对象缓存、页面缓存插件);
- 浏览器强制硬刷新(Ctrl+F5 或 Cmd+Shift+R);
- 右键 → “查看页面源代码”,搜索阿拉伯文字,确认 HTML 中已正确输出(而非 الآ... 等原始实体);
- 使用浏览器开发者工具(Elements 标签页)检查 内容是否为可读阿拉伯语。
通过以上结构化处理,即可彻底解决 WordPress 主题中阿拉伯语日期标签的乱码问题,兼顾兼容性、可维护性与国际化最佳实践。










