我有一个我正在研究的WordPress网站,其中有一大部分网站描述了植物种类。每个植物名称以" R。"开头,后面跟着物种名称。例如,一个实例是" R. adenogynum&#34。 所有这些名称都必须用斜体。
有很多这种情况,手工完成会非常耗时。我试图编写一个插件来检查/显示$ content中的所有单词,每次" the_content"运行。换句话说,我使用
add_filter( 'the_content', 'italicize' )
function italicize($content) {
...
这样做的功能。
我试图像这样使用爆炸方法:
$words = explode( ' ', $content );
然后检查$ words数组中的每个单词,但问题是空格和HTML标记也是$ content的一部分,这会混淆一切。另外,我必须使用implode将所有东西重新组合在一起,这也有点混乱。
那么如何使用插件成功编辑这些工厂名称?
答案 0 :(得分:1)
这是一项最适合preg_replace的工作。
你的功能看起来像这样:
function italicize_plant_names ($content) {
$content = preg_replace('(R\.\s+\w+)', '<em>$0</em>', $content);
return content;
}
答案 1 :(得分:1)
使用正则表达式语法。
add_filter( 'the_content', function($content) {
return preg_replace("/(R\. [a-z]+)/", "<i>$1</i>", $content);
});
这将匹配任何以“R”开头的短语。后跟一个空格,后跟一个全小写的单词,并用该单词的斜体字替换它。
答案 2 :(得分:1)
试试这个插件: http://urbangiraffe.com/plugins/search-regex/
它允许您进行正则表达式搜索并搜索/替换您的短语。