在WordPress中<span>中包装引号

时间:2017-07-16 21:20:54

标签: javascript php regex wordpress

有没有办法在Wordpress中包装特定字符(在<span>元素中),比如文本开头和结尾的引号?

TL; DR:在正文中搜索并将"替换为<span>"</span>。像这样的东西?

update wp_posts set post_content = replace(post_content,'Text to find','text to replace with');

为了使示例更容易想象,假设引用的颜色标点符号与文本不同。我不想从编辑器那样做,我想要一个钩子或者包装它在<span>中找到的引号的东西,所以我可以用css来设置它。

到目前为止,我正在使用WP Typography插件来实现此目的,但它仅包含第一个引号&amp;不是最后 ......

我已经查看了试图对其进行逆向工程的代码,但遗憾的是我还没有达到那个级别。无论我如何尝试搜索,我都无法在谷歌上找到任何东西,这似乎令人生畏。

任何想法都会非常感激。提前谢谢。

稍后编辑#01:认为该插件正在使用带有正则表达式的文本解析器来查找引号。问题是,这不会严重影响网站的性能吗?如果是这样,有什么聪明的方法呢?我应该只使用js并操纵DOM吗?

稍后编辑#02:认为是插件用于在正文中查找引用html实体的正则表达式之一:

(?: &(?:quot|amp|frasl|lt|gt|iexcl|cent|pound|curren|yen|brvbar|sect|uml|pound|ordf|laquo|not|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|times|divide|circ|tilde|thetasym|upsih|piv|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|bull|hellip|permil|prime|Prime|lsaquo|rsaquo|oline|frasl|euro|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|emptyn|abla|isin|notin|ni|prod|sum|minus|lowast|radic|prop|infin|ang|and|orc|ap|cup|int|there4|simc|ong|asymp|ne|equiv|le|ge|sub|supn|sub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|lang|rang|loz|spades|clubs|hearts|diams); )

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您想在已呈现的报价上添加报价。您可以使用:after :before 选择器来执行此操作。

例如:

span:before {
  content: "''";
}

span:after {
  content: "''";
}
    <span>I have no quotation marks!</span>

答案 1 :(得分:0)

我必须承认,我并没有完全理解这个问题。所以这就是我得到的答案:

如果要为子对象添加精灵CSS,可以使用css子选择器:

<div class="container">
<span>This</span>
<span>is my</span>
<span>Text</span>
<span>?!</span>
</div>

所以在你的CSS中你可以这样设置属性:

.container > span:first-child {
    color: red;
}
.container > span:last-child {
    color: green;
}
.container > span:nth-child(2) {
    color: yellow;
}
.container > span:nth-child(3) {
    color: blue;
}

答案 2 :(得分:0)

我写了一个似乎做我想要的功能,但是我只需要为引号找到合适的html实体。使用字母而不是标点符号:

`function replace_text($text) {
    $text = str_replace('replace this', 'with this', $text);
    $text = str_replace('replace this', 'with this', $text);
    return $text;
}
add_filter('the_content', 'replace_text');`