
本文详解如何在 wordpress 主题的 template-tags.php 文件中,安全、可靠地将 “last updated on” 和 “posted on” 替换为阿拉伯语(如 “آخر تحديث في” 和 “نشر على”),避免乱码问题,并确保 utf-8 编码与字体支持完整生效。
本文详解如何在 wordpress 主题的 template-tags.php 文件中,安全、可靠地将 “last updated on” 和 “posted on” 替换为阿拉伯语(如 “آخر تحديث في” 和 “نشر على”),避免乱码问题,并确保 utf-8 编码与字体支持完整生效。
在 WordPress 主题开发中,直接用阿拉伯语字符串替换英文文本看似简单,但常因编码不一致导致显示为方块或问号(如 ``)。根本原因在于:PHP 文件本身未以 UTF-8 无 BOM 格式保存、HTML 页面缺少 UTF-8 声明,或 PHP 输出未做编码适配。以下为经过验证的三步解决方案:
✅ 步骤一:确保文件编码为 UTF-8(无 BOM)
使用专业编辑器(如 VS Code、Sublime Text 或 Notepad++)打开 template-tags.php,另存为 → 编码选择 “UTF-8”(务必取消勾选“BOM”)。这是防止乱码的首要前提——即使代码逻辑正确,带 BOM 的 UTF-8 文件也会干扰 PHP 解析。
✅ 步骤二:安全输出阿拉伯语文本(推荐 htmlentities())
避免直接 echo 阿拉伯语字符串,改用 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) {
echo htmlentities('آخر تحديث في', ENT_QUOTES, 'UTF-8');
the_modified_time('Y-m-d');
} else {
echo htmlentities('نشر على', ENT_QUOTES, 'UTF-8');
the_time('Y-m-d');
}
?>
</span>
</div>
<?php endif; ?>
⚠️ 注意:
WordPress API Pro下载生产级WordPress REST API集成,用于管理文章、页面、媒体、WooCommerce产品、Elementor内容、SEO元数据、ACF及JetEngine字段
- ENT_QUOTES 确保单双引号正确转义;
- 'UTF-8' 参数不可省略,否则默认 ISO-8859-1 会导致乱码;
- 中文/阿拉伯语等多字节字符必须显式指定编码。
✅ 步骤三:验证并补全前端编码环境
-
检查 header.php 是否包含标准 UTF-8 声明:
<meta charset="utf-8">
应位于
内顶部位置。若缺失,请立即添加。 -
确认主题 CSS 支持阿拉伯字体渲染:
在 style.css 或自定义 CSS 中添加基础字体回退(尤其对老旧浏览器):.entry-date { font-family: "Segoe UI", "Cairo", "Tajawal", "Noto Sans Arabic", sans-serif; }
? 故障排查清单
- ❌ 仍显示乱码?→ 检查服务器是否强制输出 Content-Type: text/html; charset=ISO-8859-1(通过 HTTP Header 工具验证);
- ❌ 阿拉伯文字从右向左显示异常?→ 在 .entry-date CSS 中添加 direction: rtl; text-align: right;;
- ❌ 修改后页面空白?→ 开启 WordPress 调试模式(wp-config.php 中设 define('WP_DEBUG', true);),查看 PHP 错误提示。
完成以上配置后,阿拉伯语标签即可稳定、正确地显示,且完全兼容 WordPress 多语言生态与现代浏览器标准。











