自动链接单词,但只有一次

时间:2014-09-03 作者:Tejinder

我非常需要一段代码,将取代一个简单的字与超文本链接,使用str\\u替换方法。幸运的是,我在下面找到了这段代码,但问题是它会用所有匹配的关键字重复链接,而我只想添加一次链接,而忘记其他匹配的关键字。

例如,如果它看到“童谣”,请将其替换为超文本链接,但不要在同一页面上再次添加“童谣”、“童谣”或“诗歌”关键字的链接。一个URL只有一次。

我还听说str\\u replace可能不可能,但preg\\u replace可能会限制替换的发生。

请帮忙。我不太熟悉PHP或编码,所以请使用完整的代码,这样我就可以简单地复制并粘贴到我的函数中。php。以下是我使用的代码:

function wp_affiliate_links($text) {
    $replace = array(
        \' nursery rhymes \' => \' <a href="http://www.nurseryrhymes.me/">nursery rhymes</a> \',
        \' poems \' => \' <a href="http://www.nurseryrhymes.me/">poems</a> \',
        \' rhymes \' => \' <a href="http://www.nurseryrhymes.me/">rhymes</a> \',
    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
}
add_filter(\'the_content\', \'wp_affiliate_links\');
add_filter(\'the_excerpt\', \'wp_affiliate_links\');

1 个回复
最合适的回答,由SO网友:Robert hue 整理而成

您不能在str\\u replace中通过替换的限制数量吗?就像那样

$text = str_replace(array_keys($replace), $replace, $text, 1);

EDIT:

对不起,我在想别的事情,错过了这个。您可以使用preg\\u replace并在其中设置限制。就像这个。

function wp_affiliate_links($text){
    $replace = array(
        \'/ nursery rhymes /\' => \' <a href="http://www.nurseryrhymes.me/">nursery rhymes</a> \',
        \'/ poems /\' => \' <a href="http://www.nurseryrhymes.me/">poems</a> \',
        \'/ rhymes /\' => \' <a href="http://www.nurseryrhymes.me/">rhymes</a> \',
    );
    $text = preg_replace( array_keys($replace), $replace, $text, 1 );
    return $text;
}
add_filter(\'the_content\', \'wp_affiliate_links\');
add_filter(\'the_excerpt\', \'wp_affiliate_links\');

EDIT 2:

试试这个。

function wp_affiliate_links($text){
    $replace = array(
        \'/ nursery rhymes /\' => \' <a href="http://www.nurseryrhymes.me/">nursery rhymes</a> \',
        \'/ poems /\' => \' <a href="http://www.nurseryrhymes.me/">poems</a> \',
        \'/ rhymes /\' => \' <a href="http://www.nurseryrhymes.me/">rhymes</a> \',
    );
    foreach ( $replace as $key ) {
        $text = preg_replace( array_keys($replace), $replace, $text, 1 );
        return $text;
    }
}
add_filter(\'the_content\', \'wp_affiliate_links\');
add_filter(\'the_excerpt\', \'wp_affiliate_links\');

结束

相关推荐

黑客导航菜单以将getText()添加到菜单项?

我正在用gettext翻译我的整个网站,我在我的页面中使用短代码,这些短代码又称为gettext。然而,短代码似乎对菜单项不起作用,我需要找出一种翻译它们的方法。我想知道是否有办法从我的功能中修改我的菜单。php在从数据库检索菜单项标签和回显菜单项标签之间添加一个_(“”)函数。这可能吗?如果没有,如何翻译菜单项?