这是一个由将站点从LTR切换到RTL引起的问题,反之亦然。我也对它进行了测试,如果我将站点切换到RTL,下面是我的输出
<?php echo "I am (developer)"; ?>
渲染
(我是(开发商
这是切换到RTL语言时的正常行为。问题是,parentheses or simply ()
没有任何方向。当只有一个(
使用方式如下
<?php echo "I am (developer"; ?>
它正确输出为
我是(开发人员
当第二个括号出现时,事情就乱了套。由于没有固有的方向,在这种情况下,浏览器只需反转第二个括号的方向)
, 在中,遇到并粘贴在句子的前面,这是您在问题中看到的内容
要更正此问题,您需要以某种方式“告诉”浏览器此方向问题,以便以正确的字符顺序输出文本。这就是left-to-right mark (LRM) 已使用。有关实施的更多信息,read here
它用于设置相邻字符相对于文本方向的分组方式。
要使用的字符‎
或‎
, 所以我会这样做
<?php echo "I am (developer)‎"; ?>
或
<?php echo "I am (developer)‎"; ?>
EDIT 1
从您的链接来看,这可能是在正常LTR中造成的。然后您必须使用
right-to-left mark (RLM). 它使用以下内容:
‏
或
‏
因此,您需要执行以下操作
<?php echo "I am (developer)‏"; ?>
或
<?php echo "I am (developer)‏"; ?>
EDIT 2
如果需要更换
)
在标题中,可以使用
the_title
筛选以获取所有实例并将其替换为
str-replace
. 这应该进入
functions.phpadd_filter(\'the_title\', function ($title)
{
return str_replace(\')\', \')‎\', $title);
}, PHP_INT_MAX );
也可以使用相反的方法进行测试
add_filter(\'the_title\', function ($title)
{
return str_replace(\')\', \')‏\', $title);
}, PHP_INT_MAX );