Задать вопрос
@serhgons

Как вставить код рекламы после нужного абзаца в WP?

Ребята подскажите. Есть код который выводит в записях Wordpress после нужного абзаца рекламный код, выглядит он так:
add_filter( 'the_content', 'wpse_ad_content' );
function wpse_ad_content( $content ) {
        if( !is_single() )
            return $content;
            $paragraphAfter = 3; //Введите номер абзаца, после которого вставляем.
            $content = explode ( "</p>", $content );
            $new_content = '';
                for ( $i = 0; $i < count ( $content ); $i ++ ) {
                    if ( $i == $paragraphAfter ) {
                    $new_content .= 'тут код рекламы';
                    }
            $new_content .= $content[$i] . "</p>";
            }
            return $new_content;
    }


Однако этот код может выводить только один код и только под одним абзацем. Кто может модифицировать код, чтобы я мог задавать не одно значение абзаца и кода, а три? То-есть три раза указывать номер абзаца и код который нужно вывести.
  • Вопрос задан
  • 241 просмотр
Подписаться 1 Сложный Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
wfantastic
@wfantastic
увлечен wordpress
Попробуйте это.
Мы можем использовать массив с номерами абзацев, после которых нужно вставить рекламу, и массив с соответствующими кодами рекламы. Затем мы можем пройтись по массиву контента и вставить рекламу после каждого абзаца, который находится в массиве номеров.

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;
}
Ответ написан
Комментировать
d9d9_Sun
@d9d9_Sun
делаю сайты.
Элементарно же, ещё пару ифов добавить надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽