Поддержка Темы и шаблоны Не могу установить блок в шаблон

  • Здравствуйте! Подскажите, пожалуйста. Хочу добавить баннер на сайт в single.php. Но хочу, что бы он стоят после линии MORE или после первого H2. Т.е сразу же после обрезания страницы и получалось бы как бы в тексте. Но в single.php только <?php the_content, ставлю перед ним, получается на самой вершине страницы, ставлю после него, то получается в самом низу. Но как поставить в середине страницы не пойму! Помогите, пожалуйста! Мне нужно, что бы этот баннер был на всех 3000 страницах, в ручную я это наврятли осуществлю.
    Спасибо.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yuri

    (@yube)

    что бы он стоят после линии MORE или после первого H2.

    Линия — способ визуализации <!--more--> в визуальном редакторе, не более. В контенте поста линий нет, если специально не поиздеваться над spanом.

    в ручную я это наврятли осуществлю.

    Точно, наврятли 🙂

    Можно в functions.php темы добавить фильтр, заменяющий <span id="more...> на код баннера

    add_filter('the_content', 'add_adv');
    function add_adv($content) {
    	$BANNER = <<< BANNER
    <div>
    тут код баннера
    </div>
    BANNER;
    	if (is_single()) $content = preg_replace('|<span id="more-\d+"></span>|', $BANNER, $content);
    	return $content;
    }

    Модератор Yuri

    (@yube)

    Вдогонку: будьте внимательны! Этот span может оказаться внутри <p>...</p>, а может и не оказаться.

    Спасибо большое, сейчас попобую.

    Огромное спасибо ЮРИЙ!!!!! Всё отлично работает. А таким методом можно сделать, что бы баннер вставлялся после заголовка H2 на странице контента ? а то у меня в каждой странице имееются один h2 и не более

    Модератор Yuri

    (@yube)

    после заголовка H2

    Как-то так:
    $content = preg_replace('|(<h2>.*?</h2>)|i', '$1'.$BANNER, $content);

    так что то не хочет работать, ну да ладно. После море тоже хорошо стоит. Спасибо!

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Не могу установить блок в шаблон» закрыта для новых ответов.