Как подправить код и выводить блок перед вторым Н2 (а не первым)

xoxol4uk22
На сайте с 14.11.2017
Offline
66
479

Подскажите, вот есть код вывода рекламы на Вордпрессе перед первым Н2:

function ads_h2($content) {

$ads='БЛОК РЕКЛАМЫ';
$content=preg_replace('#<h2(.*?)</h2>#','<p style="text-align: center;">'.$ads.'</p><h2\1</h2>',$content,1);
return $content;
}
add_filter('the_content', 'ads_h2');

Как его подкорректировать, чтобы блок выводился перед вторым, а не первым Н2? А то это в регулярках, видимо, нужно разбираться(((

J
На сайте с 20.02.2014
Offline
97
jkm
#1

$content=preg_replace('#<h2.*?\K<h2#s','<p style="text-align: center;">'.$ads.'</p><h2',$content,1);
HM
На сайте с 14.01.2012
Offline
215
#2

function str_replace_n($search, $replace, $subject, $occurrence){
$search = preg_quote($search);
return preg_replace("/^((?:(?:.*?$search){".--$occurrence."}.*?))$search/ms", "$1$replace", $subject);
}

function ads_h2($content) {
$ads = 'БЛОК РЕКЛАМЫ';
$content = str_replace_n("<h2>", '<p style="text-align: center;">' . $ads . '</p><h2>', $data, 2);
return $content;
}

add_filter('the_content', 'ads_h2');

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий