Intereting Posts
WooCommerce изменить категорию URL-адрес и базу продуктов Как отфильтровать описание метакатализатора excerpt в admin? Где хранится / сгенерирована клавиша сброса пароля? как узнать, находится ли администратор на странице редактирования или опубликовать Добавить вторую ссылку для получения дополнительной информации Отображение избранных продуктов через пользовательский цикл в woocommerce на странице шаблона Загружать и включать определенные файлы JavaScript для сообщений? My Calendar Plugin – добавление вывода непосредственно в файл шаблона WordPress: robots.txt дает 500 внутренних ошибок сервера Как добавить дополнительный крючок WooCommerce Как сделать предыдущие версии доступными для пользователей? Создание короткого кода слайдера на основе слайдера Nivo как удалить титульный заголовок Категории по умолчанию Показать список таксономии с текущей категорией Список детей на дочернем посту

Возьмитесь в цикл через плагин и выведите что-нибудь после каждого сообщения X?

У меня есть плагин, где я хочу выводить объявления после X числа сообщений на главной странице. Домашняя страница – это шаг 1, но такие вещи, как архивы, также должны быть доступны, как только я получу код для главной страницы.

Как подключиться к столбцам и сказать что-то вроде «после каждого цикла, увеличивать счетчик, а затем, если счетчик = мой номер, выведите объявление». Я могу написать всю логику для этого кода сам, но где подключить / реализовать мой код запутан.

Solutions Collecting From Web of "Возьмитесь в цикл через плагин и выведите что-нибудь после каждого сообщения X?"

Вы можете попробовать следующее:

Способ 1:

Мы можем вводить объявления через действие the_post в основном цикле:

 add_action( 'loop_start', 'wpse_141253_loop_start' ); function wpse_141253_loop_start( $query ) { if( $query->is_main_query() ) { add_action( 'the_post', 'wpse_141253_the_post' ); add_action( 'loop_end', 'wpse_141253_loop_end' ); } } function wpse_141253_the_post() { static $nr = 0; if( 0 === ++$nr % 4 ) echo '<div> -------- MY AD HERE ------- </div>'; } function wpse_141253_loop_end() { remove_action( 'the_post', 'wpse_141253_the_post' ); } 

Способ 2:

Мы также можем вводить объявления через фильтр the_content в основном цикле:

 add_action( 'loop_start', 'wpse_141253_loop_start' ); function wpse_141253_loop_start( $query ) { if( $query->is_main_query() ) { add_filter( 'the_content', 'wpse_141253_the_content' ); add_action( 'loop_end', 'wpse_141253_loop_end' ); } } function wpse_141253_the_content( $content ) { static $nr = 0; if( 0 === ++$nr % 4 ) $content .= '<div>------- MY AD HERE -------</div>'; return $content; } function wpse_141253_loop_end() { remove_action( 'the_post', 'wpse_141253_the_content' ); } 

Надеюсь, вы можете изменить это на свои нужды.