- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем доброго! Выручайте друзья, сайт на Wordpress на страницах с материалами (постами) в темплейте шаблона single.php я вывожу рекламный код, а на некоторых страничках с материалами этот код мне не нужен.
Возможно как то через php вывести определенный код на всех страницах в single.php шаблоне темы, кроме записей с определенными Id ?
Используйте плагин.
В functions.php
--------------------------------------------------------------------------------------------------------------------------
// Вывод рекламы в посте после определенного абзаца, за исключением определенных постов
add_filter( 'the_content', 'tp_ad_to_post_content' );
function tp_ad_to_post_content( $content ) {
if( !is_single() )
return $content;
$paragraphAfter = 4;
$content = explode ( "</p>", $content );
$new_content = '';
for ( $i = 0; $i < count ( $content ); $i ++ ) {
if ( $i == $paragraphAfter ) {
if ( ! is_single ( array(1026, 1027, 1029, 1040) ) ) {
$new_content .= ' здесь ваш код рекламы '; }
}
$new_content .= $content[$i] . "</p>";
}
return $new_content;
}
----------------------------------------------------------------------------------------------------------------------------
$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
1026, 1027, 1029, 1040 — это ID постов, в которых реклама выводиться не будет
- спасибо!
а если упростить, без учета параграфа сделать, как будет выглядеть код ? я просто вывожу блок после самой статьи уже, внизу.
после тела wp-content (основного контента/статьи).
создайте произвольный виджет в functions.php
-----------------------------------------------------------------------------
function wpb_widgets_init() {
register_sidebar( array(
'name' => 'Произвольная область для виджетов',
'id' => 'custom-header-widget',
'before_widget' => '<div class="chw-widget">',
'after_widget' => '</div>',
'before_title' => '<h2 class="chw-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'wpb_widgets_init' );
-----------------------------------------------------------------------------------
Этот код регистрирует новую область для виджета в вашей теме.
Перейти на страницу Внешний вид » Виджеты и вы увидите новую область под названием "Произвольная область для виджетов".
Добавляем в нее код рекламного блока и сохраняем.
Отредактировать файл single.php - добавить следующий код в то место, где нужно вывести область для виджета
---------------------------------------------------------------------------------------------------------------------
<?php
if ( is_active_sidebar( 'custom-header-widget' ) ) : ?>
<div id="header-widget-area" class="chw-widget-area widget-area" role="complementary">
<?php dynamic_sidebar( 'custom-header-widget' ); ?>
</div>
<?php endif; ?>
-----------------------------------------------------------------------------------------------------------------------
В зависимости от темы, потребуется добавить CSS для того, чтобы оформить область для виджета
div#header-widget-area {
width: 100%;
text-align: center;
}
--------------------------------------------------------------------------------------------------------
Загрузите плагин Widget Logic и с его помощью управляйте где показывать рекламу (главная, статьи, страницы...) и по каким ID не показывать ее. В новом виджете (внизу есть поле)пропишите это: ! is_single ( array(1026, 1027, 1029, 1040) )
Можно и в условия функции вписать, но плагин будет лучше справляться.
Если что-то еще не понятно, пишите в ЛС.
а если упростить, без учета параграфа сделать, как будет выглядеть код ? я просто вывожу блок после самой статьи уже, внизу.
после тела wp-content (основного контента/статьи).
<?php if ( ! is_single ( array(1026, 1027, 1029, 1040) ) ) { ?>
здесь ваш код рекламы
<?php } ?>
В if перечисляете все id записей, для которых не должна показываться реклама.
Но такой способ неудобен тем, что каждый раз, когда Вам потребуется исключить запись, Вам придется редактировать файл.
Советую посмотреть в сторону дополнительных полей, например ACF или самостоятельно через add_meta_boxes. В таком случае Вы сможете в админке для записей добавить доп.поле, например чекбокс "не показывать рекламу" и уже в файле single.php сделаете проверку на наличие этого поля.
Возможно как то через php вывести определенный код на всех страницах в single.php шаблоне темы, кроме записей с определенными Id ?
Можно. С пом функций условий
Но лучше для них (или для др) сделать отдельный шаблон.
Вывод рекламы в посте после определенного абзаца, з
А ТСу вообще-то надо (было) совсем другое.
И пож, код всятавляй в ббкод [code] и читай правила 3,13
друзья, спасибо огромное за помощь!
пока поставил код от Esser
здесь ваш код рекламы
<?php } ?>
просто и работает как надо.
но решение от smurf также заслуживает внимания, чуть более продвинутое. в будущем также буду его использовать.
спасибо от души, выручили очень!