在wordpress中,但更常见的是在php suggestion之后,我想
我在第一次计数时做得很好
add_filter( 'the_content', 'make_clickable', 12 );
我还不知道第三次计数是否有效
document.write("<n uers=\"znvygb:xvpx@vaprcgvba.pbz\" ery=\"absbyybj\">Fraq n zrffntr</n>".replace(/[a-zA-Z]/g,
function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);}));
我想我想要做的是在替换之后的每次出现时,或者代替preg_replace注入str_13()。我找到this question并尝试将答案转移到我的案例中:
add_filter('the_content', 'email_encoder', 99);
function email_encoder($content) {
return preg_replace_callback('`\<a([^>])href\=\"mailto\:([^">])\"([^>]*)\>`ism', 'encode_str_13', $content);
}
function encode_str_13($matches)
{
return str_13($matches[1]);
}
什么都没改变,我不知所措。我怀疑这是我从here或数组项目地址获得的正则表达式,如果我稍微改变一下,字面意思就没有任何东西得到显示,直到我恢复变化(我似乎不对我认为我是什么这样做)。
你可以帮我编码所有mailto链接并更正我的javascript再次解码吗?
由于
编辑:这是一个示例$ content:
<p>text<br>
text<br>
text<br>
numbers<br>
<a href="mailto:....>...</a><br>
<a href="...." rel="nofollow">....</a></p>
确实我的意思是str_rot13()而不是str_13()
EDIT2:
我更加摆弄的JS是这样的:
var collection = jQuery(".encoded");
collection.each(function() {
var encoded = jQuery( this ).html();
var decoded = encoded.replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);});
jQuery(this).html(decoded);
jQuery(this).prop('class', 'decoded')
});
答案 0 :(得分:0)
你的正则表达式有点不对,这是一个正确的(DEMO):
`\<a([^>])href\=\"mailto\:([^">]+)\"([^>]*)\>`ism
在你的回调中使用2
索引,例如:
function encode_str_13($matches)
{
return str_13($matches[2]);
}