Попробуйте это.
Мы можем использовать массив с номерами абзацев, после которых нужно вставить рекламу, и массив с соответствующими кодами рекламы. Затем мы можем пройтись по массиву контента и вставить рекламу после каждого абзаца, который находится в массиве номеров.
add_filter( 'the_content', 'wpse_ad_content' );
function wpse_ad_content( $content ) {
if( !is_single() )
return $content;
// Массив с номерами абзацев, после которых нужно вставить рекламу
$paragraphsAfter = array(3, 6, 9);
// Массив с кодами рекламы для каждого абзаца
$ads = array(
'<div>Код рекламы для абзаца 3</div>',
'<div>Код рекламы для абзаца 6</div>',
'<div>Код рекламы для абзаца 9</div>'
);
$content = explode ( "</p>", $content );
$new_content = '';
$count = count($content);
for ( $i = 0; $i < $count; $i ++ ) {
$new_content .= $content[$i] . "</p>";
// Проверяем, нужно ли вставлять рекламу после текущего абзаца
if (in_array($i+1, $paragraphsAfter)) {
$adIndex = array_search($i+1, $paragraphsAfter);
if ($adIndex !== false && isset($ads[$adIndex])) {
$new_content .= $ads[$adIndex];
}
}
}
return $new_content;
}