尝试将<span>包裹在多个单词字符串的第一个单词周围,只能在两个单词字符串上运行,而不能超过两个</span>

时间:2013-04-11 05:47:03

标签: php preg-replace

我试图围绕多个单词小部件标题的第一个单词。我用过这里的答案:

Revised Wordpress function to put a Span around the first word of the Title?

并将其调整为:

function add_label_to_post_title( $title = '' ) {
    $ARR_title = explode(" ", $title);

    if(sizeof($ARR_title) > 1 ) {
        $first_word = "<span>".$ARR_title['0']."</span> ";
        unset($ARR_title['0']);
        return $first_word. implode(" ", $ARR_title);
    } else {
        return $title;
    }
}

add_filter( 'widget_title', 'add_label_to_post_title' );

它在两个单词标题上效果很好。但是,3个或更多单词标题不受影响。

我尝试用以下代码修改代码:

preg_replace('/(?<=\>)\b\w*\b|^\w*\b/', '<span>$0</span>', $string);

从这里开始:

wrap <b>-tag around first word of string with preg_replace

并且具有相同的结果,对两个单词标题有效,但三个或更多不受影响。有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

请使用

下面的数组找到代码段
function add_label_to_post_title( $title = '' ) 
{

    $ARR_title = explode(" ", $title);

    if(sizeof($ARR_title) > 1 )
    {
        $ARR_title[0] = "<span>".$ARR_title[0]."</span>";
        return implode(" ", $ARR_title);
    }
    else
    {
        return $title;
    }

}
echo add_label_to_post_title ("hi there this is test code");