Возьмитесь в цикл через плагин и выведите что-нибудь после каждого сообщения 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' ); } 

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