我正在尝试删除Chrome插件已添加到我们的WordPress帖子中的标签。
Ginger软件拼写和语法检查程序(https://chrome.google.com/webstore/detail/spell-checker-and-grammar/kdfieneakcjfaiglcfcgkidlkmlijjnh?hl=en)改变了幕后的HTML,并使页面上散布着用于class =“GINGER_SOFTWARE_mark”的虚假span标记。
我确实发现了一个晦涩难懂的WordPress插件,但它们已经更新了Chrome扩展程序,随着标签格式的改变而不再有效,作者已经擅离改变,所以我一直在努力更新插件我自己,我很接近,但需要一只手越过最后阶段....任何接受者?
这是我正在剥离的标签示例:
<span class="GINGER_SOFTWARE_mark" id="8199646e-ebe6-45e9-bbe2-b212389a8120">words go here</span>
我一直试图调整的插件就是这个:http://wordpress.org/plugins/ginger-tag-remover/
使用Debuggex我能够获得与上述匹配的PCRE正则表达式:
\<span class\=\"GINGER_SOFTWARE_mark\" id=\"[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"\>(.*?)\<\/span\>
但是在PHP中实现它并不是那么好......
这是从插件中取出的代码:
if ( !function_exists( 'add_action' ) ) {
echo 'Leave me alone. I don\'t want trouble.';
exit;
}
function gtr_strip_ginger_tags($content){
$gtr_patern_array=array();
array_push($gtr_patern_array,array('pattern'=>'#\<span class\=\\\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\\\"\>(.*?)\<\/span\>#m','replace'=>'$1'));
array_push($gtr_patern_array,array('pattern'=>'#\<span class\=\\\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\\\"\>(.*?)\<\/span\>#m','replace'=>'$1'));
array_push($gtr_patern_array,array('pattern'=>'#\<span class\=\\\"GINGER_SOFATWARE_correct\\\"\>(.*?)\<\/span\>#m','replace'=>'$1'));
array_push($gtr_patern_array,array('pattern'=>'#\<span class\=\\\"GINGER_SOFATWARE_spelling\\\"\>(.*?)\<\/span\>#m','replace'=>'$1'));
foreach($gtr_patern_array as $pat){
$content=preg_replace($pat['pattern'],$pat['replace'],$content);
}
//$content.='<!-- GINGER CLEANED -->';
return $content;
}
add_filter('content_save_pre','gtr_strip_ginger_tags');
我尝试添加这个:
array_push($gtr_patern_array,array('pattern'=>'#\<span class\=\\\"GINGER_SOFTWARE_mark\\\" id=\\\"[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"\\\ \>(.*?)\<\/span\>#m','replace'=>'$1'));
认为我很接近,但不确定我需要调整什么,有什么建议吗?
卡鲁
答案 0 :(得分:0)
您在代码“GINGER_SOFTAWARE”中没有“GINGER_SOFTWARE”。我认为这是问题 - 如果这不起作用,请对此进行评论,以便我进一步深入研究。
- 编辑 -
然后可能尝试使用RegExp删除所有类,如果类是正确的:
\<span class\=\"GINGER_SOFTWARE_mark\" ([^>]*)\>(.*?)\<\/span\>