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

Rusev1

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

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

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

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

rqkPL
https://imgur.com/a/rqkPL
 
Пробвай да си го напишеш, вземаш целия post body.Len / 2 и добавяш рекламата в параграф.
 
Искам да стане така, че автоматично да става, а не за всеки нов пост да го правя ръчно.

На ден се скрейпват по 15 поста са някъде, нямам време ръчно да ги слагам за всеки пост.
 
Ами автоматично де, провери кода на тоя плъгин какво инсертва и защо не инсертва нищо, например там където трябва да инсертва ад рекламата, пробвай да изпринтиш примерно " ТЕСТ" и разчовъркай защо не работи.
 
Плъгина си инсъртва, например опцията след първия <p> си работи идеално.

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

Извинете, че не пиша по темата, но може ли да ми кажете кой е плъгина, който използвате - платен или безплатен, защото имам нужда от такъв?
 
В кода на темата няма ли да е по-добре да се сложат рекламките
 
@ReminD май ходенето по курсове не ти се отразява добре. Не давай такива лоши съвети, че после ще има тема - счупи ми се поста.

Защо трябва рекламите да се хардкорват в публикацията?
 
Абе пичове, софтунита, курсове, ала бала, не се прави така, като негодувате покажете как става номера с процентите тогава. Аз говоря от гледната точка на човек, който не се занимава с 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>';
            }
 
Дет са вика ретърн 2х и всичко ще е ок!
Текста не се дели на %-ти, или ще стане мазало.
 
Как пък да не се дели, ако текста ти е с дългина 200символа, и искаш 50 процента , нали делим 50 на 100 ( 50 / 100 ) , което е 0.5, след това индекса, който търсим е 200 * 0.5 , което ще ти даде 100, което си е точно 50 процента от 200, тоест на стотния индекс + 1 ще сложиш реклама ако това ти е кейза.
Ей го и в код
6aaeb0f86eab6f01c39a897a328ad192.png
 
Последно редактирано:

Горе