В DLE есть тег [newscount=x] текст [/newscount] прописываю его в shortstory и вывожу рекламу, например, после 4 короткой новости. Так вот реклама выводится как положено поначалу, а через какое-то время пропадает на первых страницах категорий и на главной странице. Т.е. [newscount] выводит что нужно только на 2 и последующих страницах, а на 1 и главной пропадает вывод почему-то. Но если сбросить кэш, то все восстанавливается, а затем опять пропадает. Не могу понять почему, может какую настройку вкл/выкл, не могу допереть, сталкивался кто?
Проблема, которую вы описываете, может быть связана с несколькими факторами, включая настройки кэша, логику вывода рекламы и работу сессий. Вот несколько шагов, которые могут помочь диагностировать и исправить проблему: 1. Настройки Кэша Проверка и настройки кэширования: Убедитесь, что кэширование настроено корректно. Важно, чтобы кэш очищался при обновлении контента. Проверьте, используется ли сторонний плагин для кэширования (например, WP Super Cache, W3 Total Cache и др.). Убедитесь, что он правильно настроен и не кэширует динамические элементы, такие как реклама. Исключение блоков из кэша: Попробуйте исключить блок с рекламой из кэширования. Многие плагины кэширования позволяют указать, какие элементы или страницы не следует кэшировать. 2. Логика вывода рекламы Проверка условий вывода рекламы: Убедитесь, что условия, которые определяют вывод рекламы, правильно установлены и работают. Проверьте, используется ли корректный счетчик новостей. Возможно, он не обновляется на первой странице из-за особенностей работы кэша. 3. Логика работы сессий Использование сессий для контроля вывода: Если вывод рекламы зависит от состояния сессий (например, для предотвращения повторного показа рекламы), убедитесь, что сессии корректно управляются и не сбрасываются преждевременно. 4. Диагностика кода Просмотр и анализ кода: Проверьте, правильно ли работает код, отвечающий за вывод рекламы. Возможно, проблема в логике кода, которая обрабатывает вывод на первой странице. Убедитесь, что условие [newscount] работает корректно и не зависит от кэша страницы. Пример кода Вот пример кода, который может помочь избежать проблем с кэшированием и правильным выводом рекламы: php if ( !is_page() && !is_single() ) { $news_count = 0; while ( have_posts() ) : the_post(); $news_count++; // Ваша логика вывода новости if ( $news_count == 4 ) { // Вывод рекламы после 4-й новости echo '<div class="ad-block">Ваша реклама</div>'; } endwhile; } Рекомендации по кэшированию Отключите кэширование для динамических блоков: Убедитесь, что кэширование не применяется к блокам, которые содержат динамическую информацию, такую как реклама. Используйте тег cache-control: Можно использовать HTTP заголовки для управления кэшированием на уровне сервера. Проверка через разные браузеры и устройства Проверьте поведение рекламы через разные браузеры и устройства. Иногда проблемы могут проявляться только в определенных условиях. Если все вышеописанное не решает проблему, возможно, стоит обратиться к разработчику или сообществу вашей CMS/платформы для более детальной диагностики.