внедрить в functions.php запрос
-
Здравствуйте. Как внедрить в functions.php такой запрос что бы он мог убирать картинку в записи и заменял её на рекламный блок?
т.е на главной странице картинка есть а при переходе на страницу эта картинка убирается и заменяется рекламой. У многих на сайте видел но как сделать не знаю, подскажите пожалуйста.
спасибо!
-
Как-то так
add_filter('the_content','my_dummy_function'); function my_dummy_function($content) { if ( ! is_single() ) return $content; $content = preg_replace("/<img .*>/mU", "РЕКЛАМА", $content); return $content; }php.net в помощь по составлению регулярного выражения
спасибо большое! Но заменились все изображения в развёрнутой странице, не только те что в теге more, подскажите что поменять?
я так понимаю условие «/<img .*>/mU», выделяет все картинки в статье и заменяет на то что я задам, слово реклама и т.д.
как завязать что бы выделялись не все картинки в single а только те которые до тега more и не ниже.
Спасибо!Юрий вот поглядите сайт «http://omelchuck.ru/category/domashnie-dela/bitovie-pribori/» на общей странице картинка, а при переходе там реклама. Никак не могу повторить(((((
// Fetch post content $content = get_post_field( 'post_content', get_the_ID() ); // Get content parts $content_parts = get_extended( $content ); // Output part before <!--more--> tag echo $content_parts['main'];а как его срастить с add_filter ?
Если честно я на 98% по выражениям туп ( Но обратиться некуда, нет ни друзей ни знакомых кто в этом шарит. Одна надежда на вас.
add_filter от Юрия работает так как нужно! Но заменяет все изображения на странице. и до и после тега more. как фильтр завязать с тегом? возможно ли это?add_filter('the_content','my_dummy_function'); function my_dummy_function($content) { if ( ! is_single() ) return $content; $content_parts = get_extended( $content ); $content = preg_replace("/<img .*>/mU", "РЕКЛАМА", $content_parts['main']); return $content; }не проверял, но вроде так.
а на указанном вами сайте никаких замен нет — там на главной выводятся миниатюры записей, а в single.php миниатюр нет, зато прописан код рекламы.
ааа вот оно что! спасибо за столь быстрый и разъеснённый ответ! Сейчас попробую фильтр
как завязать что бы выделялись не все картинки в single а только те которые до тега more и не ниже.
Подсказка: в том месте, где в исходном тексте было
<!--more-->, при выводе поста целиком обычно появляется<span id="more-NNN"></span>(где NNN — ID поста). Можно разбить контент на две части по этому «маркеру», заменить в первой части картинку на рекламку, а затем обратно склеить эти две части.Кстати, такую подмену в части контента можно делать не только фильтром, но и непосредственно в шаблоне, пользуясь глобальной переменной $more и аргументом stripteaser функций the_content/get_the_content.
Попробовал вашу замену, ничего не происходит и фотку не заменяет и на убирает её, не оперирует.
Попробовал вашу замену, ничего не происходит и фотку не заменяет и на убирает её, не оперирует.
оно работает при использовании 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; }сразу в расширенной статье где я обрезал статью тегом море появляется реклама, таким методом работает, но там она не нужна а нужна именно вместо картинки.
Flector забыл запятую, поправил, сработало, но опять на все картинки всего поста.
Тема «внедрить в functions.php запрос» закрыта для новых ответов.