修复移位的大括号问题()

时间:2014-07-20 作者:Manjeet Shokal

我对大括号的输出和放置有问题(). 当大括号出现在代码中时,它会错误地显示在输出中。

谁能解决这个问题?

<?php echo "I am (developer)"; ?>
在这里,开发者用大括号括起来,上面代码的输出如下

(我是(开发商

而不是

我是(开发人员)

此问题是如何发生的

EDIT

我已经安装了polylang插件,将RTL更改为LTR。但删除插件后仍然面临问题。这影响了我的整个网站。我在我的网站上做了很多功能,在我有大括号()的地方,效果无处不在,如帖子标题、帖子内容等

1 个回复
SO网友:Pieter Goosen

这是一个由将站点从LTR切换到RTL引起的问题,反之亦然。我也对它进行了测试,如果我将站点切换到RTL,下面是我的输出

<?php echo "I am (developer)"; ?>
渲染

(我是(开发商

这是切换到RTL语言时的正常行为。问题是,parentheses or simply () 没有任何方向。当只有一个( 使用方式如下

<?php echo "I am (developer"; ?>
它正确输出为

我是(开发人员

当第二个括号出现时,事情就乱了套。由于没有固有的方向,在这种情况下,浏览器只需反转第二个括号的方向), 在中,遇到并粘贴在句子的前面,这是您在问题中看到的内容

要更正此问题,您需要以某种方式“告诉”浏览器此方向问题,以便以正确的字符顺序输出文本。这就是left-to-right mark (LRM) 已使用。有关实施的更多信息,read here

它用于设置相邻字符相对于文本方向的分组方式。

要使用的字符&lrm;&#x200e;, 所以我会这样做

<?php echo "I am (developer)&lrm;"; ?> 

<?php echo "I am (developer)&#x200e;"; ?>

EDIT 1

从您的链接来看,这可能是在正常LTR中造成的。然后您必须使用right-to-left mark (RLM). 它使用以下内容:&rlm;&#x200f;

因此,您需要执行以下操作

<?php echo "I am (developer)&rlm;"; ?> 

<?php echo "I am (developer)&#x200f;"; ?>

EDIT 2

如果需要更换) 在标题中,可以使用the_title 筛选以获取所有实例并将其替换为str-replace. 这应该进入functions.php

add_filter(\'the_title\', function ($title) 
{
   return str_replace(\')\', \')&lrm;\', $title);

}, PHP_INT_MAX );
也可以使用相反的方法进行测试

add_filter(\'the_title\', function ($title) 
{
   return str_replace(\')\', \')&rlm;\', $title);

}, PHP_INT_MAX );

结束

相关推荐

Similar posts formatting

我正在使用类似的帖子插件http://wordpress.org/extend/plugins/similar-posts/, 我希望类似的帖子显示在同一行,而不是列表。。。如链路1、链路2、链路3、链路4而不是链接1链接2链接3链接4几天前,我在wordpress论坛和插件的官方网站上发布了这篇文章,但仍然没有答案。。。救救我!(我对编码知之甚少,所以请尽量具体,如果你给我代码,请解释每一行的作用,以便我可以学习)谢谢补充信息:我正在使用插件的大部分默认设置,我认为我所做的唯一更改是将其设置为只考虑标签