/** * If the current view is using the Homepage template, modify Infinite Scroll's * 'posts_per_page' setting. * * Since this theme is using the 'click' type of Infinite Scroll, the 'posts_per_page' * setting gets overridden and set to the value of get_option( 'posts_per_page' ). This * is then cached before $wp_query gets set up, making it hard to programatically determine * if the current view needs a different value or not. This action, which gets fired after * $wp_query is set up, determines if we're looking at the Homepage template, and if so it * forces the The_Neverending_Home_Page object property for posts_per_page to accept * a different value. * * @since 1.0. * */ function oxford_infinite_scroll_template_redirect() { if (is_page() && 'homepage.php' === get_page_template_slug()) { $posts_per_page = oxford_homepage()->query->query_vars['posts_per_page']; if (class_exists('The_Neverending_Home_Page')) { The_Neverending_Home_Page::$settings['posts_per_page'] = $posts_per_page; } else { Oxford_Neverending_Home_Page::$settings['posts_per_page'] = $posts_per_page; } } }
?> </h3> <?php if (oxford_homepage()->query->have_posts()) { $posts_template = oxford_homepage()->query->post_count < 4 ? 'posts-few' : 'posts-many'; ?> <div id="<?php echo $posts_template; ?> "> <?php // Add flag to prevent widget area from loading again add_filter('oxford_loading_more_posts', '__return_true'); while (oxford_homepage()->query->have_posts()) { oxford_homepage()->query->the_post(); ?> <?php get_template_part('content', $posts_template); ?> <?php } wp_reset_postdata(); // Remove flag remove_all_filters('oxford_loading_more_posts'); ?> </div> <?php } ?>