JavaScript: автоматизируем вставку рекламы в текст статей на WordPress

WEB  

Точечно вставить рекламу в конкретную статью на CMS WordPress не составит никаких проблем. Но вставить ее сразу во все статьи без сложных плагинов и быстро убрать при необходимости — не получится. Представляю очень простой скрипт с ручным управлением, который все это умеет.

Это полностью нативный JavaScript, состоящий из двух частей. В первой мы находим нужные нам элементы на странице по конкретному селектору, а во второй части — перебираем полученный массив в цикле FOR.

Как работает плагин

исходный код

Пример того, как работает данный плагин можно посмотреть на скриншоте выше. Рекламный блок регулируется для всех страниц типа «запись» в одном месте и состоит из 10 строк кода.

Судя по скриншоту, главный контейнер для статей у меня «.POST-CONTENT», а блоками выступает контейнер «P». Также присутствуют и блоки «PRE» и «FIGURE». Но их слишком мало, чтобы уделять им внимание и усложнять перебор DOM-дерева.

Таким образом я решил выбрать все вложенные теги «P» в родительском контейнере «.POST-CONTENT», пересчитать их и через заданный промежуток выводить нужный мне рекламный код. 

Промежутки можно настраивать. Также можно выводить несколько рекламных кодов создав дубликат или настроив ротацию.

Код плагина

//реклама в контенте статьи
    var content_p = document.querySelectorAll('.post-content p');

    for (let i = 0; i < content_p.length; i++){

        // после каждого третьего, пропуская нулевой
        // if(i != 0 && i % 3 == 0){
        // каждый пятый и девятый
        if(i == 5 || i == 9){
            $(content_p[i]).after("сюда код рекламы");
        }
    }

Это и весь плагин. По умолчанию реклама будет выводиться после каждого пятого и девятого блоков т.к. задано совпадение хотя бы одного из двух условий. Также можно настроить постоянное чередование. 

В примере выше закомментирована часть кода, в которой стоит условие с остатком от деления на три. В этом решении подходят все числа, кратные тройке — 3, 6, 9 и т.д. 

Более наглядный и уже рабочий пример в виде скриншота.

код рекамного блока