在WordPress中,我需要在每个页面的内容中用斜体显示某个短语

时间:2015-02-09 15:03:34

标签: php wordpress plugins wordpress-plugin

我有一个我正在研究的WordPress网站,其中有一大部分网站描述了植物种类。每个植物名称以" R。"开头,后面跟着物种名称。例如,一个实例是" R. adenogynum&#34。 所有这些名称都必须用斜体

有很多这种情况,手工完成会非常耗时。我试图编写一个插件来检查/显示$ content中的所有单词,每次" the_content"运行。换句话说,我使用

add_filter( 'the_content', 'italicize' )

function italicize($content) {
... 

这样做的功能。

我试图像这样使用爆炸方法:

$words = explode( ' ', $content );

然后检查$ words数组中的每个单词,但问题是空格和HTML标记也是$ content的一部分,这会混淆一切。另外,我必须使用implode将所有东西重新组合在一起,这也有点混乱。

那么如何使用插件成功编辑这些工厂名称?

3 个答案:

答案 0 :(得分:1)

这是一项最适合preg_replace的工作。

你的功能看起来像这样:

function italicize_plant_names ($content) {  
    $content = preg_replace('(R\.\s+\w+)', '<em>$0</em>', $content);
    return content;
}

Demo of the php codeRegular Expression tester

答案 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/

它允许您进行正则表达式搜索并搜索/替换您的短语。