質問: preg_replace($h2, $ads.$h2s[0], $the_content, 1); } } return $the_content; } add_filter(‘the_content’,’hogehoge′);
回答: preg_match ですと最初に見つかった一つだけが返ってきますから、 preg_match_all で全部見つけてから2個目のものだけ書き換えればよいかと。 あるいは、preg_match に PREG_OFFSET_CAPTURE オプションを付けて、 1度目の呼び出しで受け取った offset を加えてもう一度 preg_match を行う(これにより先頭を捨てて次に最初に見つかった文字列=2個目の文字列が返る)というのもありはありです。