【发布时间】:2012-03-23 06:02:11
【问题描述】:
这很复杂。我无法直接用语言来表达这一点。所以这是我的问题 -
我有这个基于 WordPress TinyMCE 编辑器的短代码生成器表单,它基本上是一个 HTML 文档。它有两个<textarea></textarea> 输入。当用户点击“插入短代码”时,此页面上的 javascript 代码会填充短代码并将其插入到 WordPress 的编辑器中。
现在,如果用户插入类似 -
>>>This is an "amazing post"! You can't wait to get your hands on it.<<<
在其中一个textarea中,短代码生成相应的属性为this -
c_text=">>>This is an "amazing post"! You can't wait to get your hands on it.<<<"
这个带有其他属性的短代码然后由 WordPress 保存到数据库中。在前端检索到时,WordPress 中的add_shortcode() 函数会搞砸一切,这很明显,>,<,',"exist inside c_text
在 PHP 中一个明显的选择是将htmlentities 与ENT_QUOTES 一起使用,但在这种情况下该怎么做呢?使用phpjs equivalent function 意味着包含大量的javascript。如何有效地做到这一点?
UPDATE :我尝试使用 phpjs 等效函数。它正确地进行转换。但是,引号被 WordPress 取代。
示例 - 我放了一个随机字符串<> <test> <<><<<>><<> ' <"">?sdg#@Y^#ASCST#@Y^
并做了console.log(htmlentities(string,'ENT_QUOTES'));,它记录了
&lt;&gt; &lt;test&gt; &lt;&lt;&gt;&lt;&lt;&lt;&gt;&gt;&lt;&lt;&gt; &#039; &lt;&quot;&quot;&gt;?sdg#@Y^#ASCST#@Y^
这是正确的。但是,当我查看切换到 TinyMCE 的 HTML 视图时,它显示了
<> <test> <<><<<>><<> '
<"">?sdg#@Y^#ASCST#@Y^
引号已替换为 TinyMCE。
【问题讨论】:
标签: javascript wordpress