以下の関数では、大文字と小文字を区別しないキーワードに一致させたい(「BlueYogaMats」と「blueyogamats」に一致する必要があります)...
ただし、現在、キーワードが同じ場合にのみ一致します。
$ mykeyword="ブルーヨガマット";
$post->post_content = preg_replace_callback("/\b($mykeyword)\b/","doReplace", $post->post_content);
// the callback function
function doReplace($matches)
{
static $count = 0;
// switch on $count and later increment $count.
switch($count++) {
case 0: return '<b>'.$matches[1].'</b>'; // 1st instance, wrap in bold
case 1: return '<em>'.$matches[1].'</em>'; // 2nd instance, wrap in italics
case 2: return '<u>'.$matches[1].'</u>'; // 3rd instance, wrap in underline
default: return $matches[1]; // don't change others.
}
}