• Как сделать так, чтобы после 2 "записи" выводился другой блок?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Ваш код работать не будет, функции next_posts_link() и previous_posts_link() работают только с глобальным запросом и не будут работать с кастомным WP_Query()

    Если вас не устраивает ограничение на кол-во постов в настройках, вы можете изменить это значение для отдельных запросов на хуке pre_get_posts

    add_action( 'pre_get_posts', 'wpz_home_pagesize', 1 );
    function wpz_home_pagesize( $query ) {
    
    	// Выходим, если это админ-панель или не основной запрос.
    	if ( is_admin() || !$query->is_main_query() )
    		return;
    
    	// Выводим только 5 постов на главной странице
    	if ( is_home() ) {
    		$query->set( 'posts_per_page', 5 );
    	}
    
    }


    Вывести блок с дополнительной информацией после каждого пятого поста можно с помощью простого счетчика

    $i = 1;
    while ( have_posts() ) :
    	the_post();
    
    	get_template_part( 'template-parts/content', get_post_format() );
    
    	// после каждого пятого поста выводим баннер
    	if ( is_int( $i++ / 5 ) ) {
    		get_template_part( 'template-parts/content', 'offer' );
    	}
    
    endwhile;
    Ответ написан
    3 комментария