Intereting Posts

Как исправить разбиение на страницы для индекса, показывающего другое количество сообщений с архивных страниц?

На моей странице индексов сообщений есть один цикл для избранной записи (я использовал плагин для этого: NS Featured Posts). Вот петля для этого –

<?php $custom_query_args = array( 'post_type' => 'post', 'meta_key' => '_is_ns_featured_post', 'meta_value' => 'yes', ); // Get current page and append to custom query parameters array $custom_query_args['paged'] = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; $custom_query = new WP_Query( $custom_query_args ); // Pagination fix global $wp_query; $temp_query = $wp_query; $wp_query = NULL; $wp_query = $custom_query; if ( $custom_query->have_posts() && is_home()) : ?> <!-- the loop --> while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?> <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> <h4><?php echo get_the_date(); ?></h4> <?php the_post_thumbnail(); ?> <p> <?php the_excerpt(); ?></p> <?php endwhile; ?> <!-- end of the loop --> <?php else: ?> <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p> <?php endif; ?> 

На странице индекса должна отображаться только избранная публикация, а затем две последние записи. Избранная публикация не всегда может быть последним сообщением. Вот второй цикл для двух сообщений:

 <?php query_posts("showposts=2"); if (have_posts()) : while (have_posts()) : the_post(); ?> <h2 class="news-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2> <h4><?php echo get_the_date(); ?></h4> <div class="txt"> <?php the_excerpt(); ?> <hr class="low-margin"> </div> <?php endwhile;?> <?php else : ?> There are no posts. <?php endif; ?> 

Разбиение страницы ужасно нарушено. Страница индекса отображается правильно, но нажатие на «Предыдущие сообщения» приводит к 404.

Как мне

  1. Убедитесь, что на индексной странице отображаются рекомендуемые сообщения и последние два сообщения?
  2. Убедитесь, что на страницах архива показаны десять сообщений без заметки?
  3. Исправить разбиение на страницы?

расчетное время прибытия

Я думаю, что мой запрос должен выглядеть примерно так:

 while (have_posts() { if (is_home()) { // code that shows featured post, followed by code that shows two most recent two posts } else { // code that shows ten posts on archived pages } } 

Я знаю, что я хочу, чем сложнее, и мне нужен массив аргументов и еще много чего.

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