Ad insert за RSS постове

Rusev1

New Member
Имам плъгин, който скрейпва RSS новини и ги прави на постове в сайта ми.

Искам да направя така, че 2 in content банер ада да се инсертват автоматично за всеки нов пост.

Единият ад трябва да е след първия <p>, а вторият трябва да е след 40-50% от контента.

Пробвах 2 плъгина: Ad Inserter и Ad Injection.
Първият ад плейсмънт не е проблем, просто задавам да е след първия <p>, но немога да намеря как да направя другия ад плейсмънт (след 40-50% от контента).
 

Rusev1

New Member
Ето така трябва да изглежда горе долу:

rqkPL
https://imgur.com/a/rqkPL
 

Rusev1

New Member
Искам да стане така, че автоматично да става, а не за всеки нов пост да го правя ръчно.

На ден се скрейпват по 15 поста са някъде, нямам време ръчно да ги слагам за всеки пост.
 

ReminD

Well-Known Member
Ами автоматично де, провери кода на тоя плъгин какво инсертва и защо не инсертва нищо, например там където трябва да инсертва ад рекламата, пробвай да изпринтиш примерно " ТЕСТ" и разчовъркай защо не работи.
 

Rusev1

New Member
Плъгина си инсъртва, например опцията след първия <p> си работи идеално.

Просто няма опция за втория плейсмънт. Няма такава опция за % от контента.
 

ReminD

Well-Known Member
Допиши си я, ще пипнеш по кода, копи пейст на първия плъгин където инсертва, само че инсертвай след колкото процента искаш. Процентите са ти text.length - (text.length * 0.40); за 40 процента след текста. Не знам за wp кое е най-оптимално, но после като хванеш стринга на 40 процента, само инсертваш там рекламата.
 

Sky

Well-Known Member
Допиши си я, ще пипнеш по кода, копи пейст на първия плъгин където инсертва, само че инсертвай след колкото процента искаш. Процентите са ти text.length - (text.length * 0.40); за 40 процента след текста. Не знам за wp кое е най-оптимално, но после като хванеш стринга на 40 процента, само инсертваш там рекламата.
Дейба това уни как ви осакатява мисленето, потрес
 

bgtifo

Well-Known Member
Имам плъгин, който скрейпва RSS новини и ги прави на постове в сайта ми.

Извинете, че не пиша по темата, но може ли да ми кажете кой е плъгина, който използвате - платен или безплатен, защото имам нужда от такъв?
 

slavchev

Well-Known Member
Insert Post Ads е много добър плъгин, можеш и след всеки параграф да си добавиш реклама и е лесно за настройване :)
 

waldes

Well-Known Member
В кода на темата няма ли да е по-добре да се сложат рекламките
 

AMitrev

Well-Known Member
@ReminD май ходенето по курсове не ти се отразява добре. Не давай такива лоши съвети, че после ще има тема - счупи ми се поста.

Защо трябва рекламите да се хардкорват в публикацията?
 

ReminD

Well-Known Member
Абе пичове, софтунита, курсове, ала бала, не се прави така, като негодувате покажете как става номера с процентите тогава. Аз говоря от гледната точка на човек, който не се занимава с WP, че в стринг нещата биха станали така. Сега разгледах 3 инлайн ад инсертери и трите ползват копи пейст код, тоест това

Код:
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {

        if ( trim( $paragraph ) ) {
            $paragraphs[$index] .= $closing_p;
        }

        if ( $paragraph_id == $index + 1 ) {
            $paragraphs[$index] .= $insertion;
        }
    }
 
    return implode( '', $paragraphs );
}

Хайде допишете го ако например искам 40 процента от текста или 60. Ето и втори вариант


Код:
function insertAds( $content ) {
        $ads = new WP_Query( array(
            'post_type' => $this->plugin->posttype,
            'post_status' => 'publish',
            'posts_per_page' => -1,
        ) );
        if ( $ads->have_posts() ) {
            while ( $ads->have_posts() ) {
                $ads->the_post();

                $adID = get_the_ID();
                $adCode = get_post_meta( $adID, '_ad_code', true );
                $adPosition = get_post_meta( $adID, '_ad_position', true );
                $paragraphNumber = get_post_meta( $adID, '_paragraph_number', true );

                switch ( $adPosition ) {
                    case 'top':
                        $content = $adCode . $content;
                        break;
                    case 'bottom':
                        $content = $content . $adCode;
                        break;
                    default:
                        $content = $this->insertAdAfterParagraph( $adCode, $paragraphNumber, $content );
                        break;
                }
            }
        }
function insertAdAfterParagraph( $insertion, $paragraph_id, $content ) {
        $closing_p = '</p>';
        $paragraphs = explode( $closing_p, $content );
        foreach ( $paragraphs as $index => $paragraph ) {
            // Only add closing tag to non-empty paragraphs
            if ( trim( $paragraph ) ) {
                // Adding closing markup now, rather than at implode, means insertion
                // is outside of the paragraph markup, and not just inside of it.
                $paragraphs[$index] .= $closing_p;
            }

            // + 1 allows for considering the first paragraph as #1, not #0.
            if ( $paragraph_id == $index + 1 ) {
                $paragraphs[$index] .= '<div class="' . $this->generateRandomString( 8 ) . '"' . ( isset( $this->settings['css'] ) ? '' : ' style="clear:both;float:left;width:100%;margin:0 0 20px 0;"' ) . '>' . $insertion . '</div>';
            }
 

Sky

Well-Known Member
Дет са вика ретърн 2х и всичко ще е ок!
Текста не се дели на %-ти, или ще стане мазало.
 

ReminD

Well-Known Member
Как пък да не се дели, ако текста ти е с дългина 200символа, и искаш 50 процента , нали делим 50 на 100 ( 50 / 100 ) , което е 0.5, след това индекса, който търсим е 200 * 0.5 , което ще ти даде 100, което си е точно 50 процента от 200, тоест на стотния индекс + 1 ще сложиш реклама ако това ти е кейза.
Ей го и в код
6aaeb0f86eab6f01c39a897a328ad192.png
 
Последно редактирано:

Горе