@Ysery

Нашёл на просторах сети код вывода рекламы, а как в него добавить исключение вывода в определённом посте?

Доброго времени суток, уважаемые гуру.

Как в найденном на просторах сети коде добавить исключение вывода рекламной записи для определённого поста (или нескольких постов)?

<?php
 
//Вставляем рекламный блок после второго абзаца определенной статьи.
 
add_filter( 'the_content', 'prefix_insert_post_ads' );
 
function prefix_insert_post_ads( $content ) {
    
    $ad_code = '<div>Рекламный код размещаем здесь</div>';
 
    if ( is_single() && ! is_admin() ) {
        return prefix_insert_after_paragraph( $ad_code, 2, $content );
    }
    
    return $content;
}
 
// Родительская функция, которая позволяет волшебству случиться
 
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 );
}
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
Если пост без рекламы 1, то можно по айдишнику поста:
global $post;
 if ( is_single() && ! is_admin() && ($post->ID != 5)) ) {
        return prefix_insert_after_paragraph( $ad_code, 2, $content );
    }


Ну или по нескольким айдишникам

global $post;
$without_ad = [1,4,6,7]
 if ( is_single() && ! is_admin() && !in_array($post->ID, $without_ad)) ) {
        return prefix_insert_after_paragraph( $ad_code, 2, $content );
    }

Массив с айдишниками можно вывести из админки. Можно еще по кастомному полю поста.

Можно по принадлежности поста к определенной рубрике.
global $post;
 if ( is_single() && ! is_admin() && !in_category($cat_id, $post)) ) {
        return prefix_insert_after_paragraph( $ad_code, 2, $content );
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы