Отдельный пост-дисплей списка всех сообщений + конкретная запись

Я хочу показать на одном посту три вещи:

  • Список всех сообщений в общем
  • Заголовок одной записи
  • содержание

То, что я достиг прямо сейчас, не является удовлетворительным, потому что я показываю все сообщения (и он работает нормально), но вторая часть (связанная с показом только определенного заголовка и контента) не работает, потому что она показывает только самую новую.

Например:

У меня есть 2 сообщения под названием «Новости об ИТ» и «Сериалы». Сообщение о телевидении – самое новое. После нажатия на «Новости об ИТ» я увижу все сообщения в верхней части и в качестве основной части – заголовок и содержание НОВОСТИ ОБ ЭТОМ. Прямо сейчас, используя мое решение, он показывает сериал как новый пост.

Как я могу достичь своего решения?

Это мой текущий код:

<div class="wrapper"> <div class="center"> <div class="sub-menu-1"> <a href="#" title="O nas" class="about-us"> O nas </a> <a href="#" title="Oferta" class="offer"> Oferta</a> <div class="clear"></div> </div> <div class="news-slider"> <a href="#" title="Nowsze wpisy" class="arrow-left" id="mycarousel-prev"></a> <div class="news-content"> <ul id="mycarousel" class="jcarousel-skin-tango"> <?php rewind_posts(); ?> <?php query_posts('post_type=post&posts_per_page=-1'); ?> <?php if(have_posts()) : while(have_posts()) : the_post(); ?> <li> <p class="post-date"><?php the_time('j F Y') ?></p> <p class="separator"></p> <p class="post-title"><a href="<?php the_permalink(); ?>" title="<?php printf(esc_attr__('Odsyłacz do %s', 'sp3-rybnik'), the_title_attribute('echo=0')); ?>" rel="bookmark"><?php the_title(); ?></a></p> </li> <?php endwhile; else: ?> <?php wp_reset_query(); ?> <h4>404 - brak strony...</h4> <p>Wielka otchłań internetu połknęła wskazaną stronę - wyszukaj interesującą Cię treść korzystając z menu.</p> <?php endif; ?> </ul> </div> <a href="#" title="Starsze wpisy" class="arrow-right" id="mycarousel-next"></a> <div class="clear"></div> </div> </div> </div> <div class="content-single"> <div class="content-single-entry"> <?php rewind_posts(); ?> <?php query_posts('post_type=post&posts_per_page=1'); ?> <?php if(have_posts()) : while(have_posts()) : the_post(); ?> <h2><?php the_title(); ?></h2> <p class="separator"></p> <p class="post-date"><?php the_time('j F Y') ?></p> <div id="scrollbar1"> <div class="scrollbar"> <div class="track"> <div class="thumb"> <div class="end"></div> </div> </div> </div> <div class="viewport"> <div class="overview"> <?php the_content(); ?> <?php endwhile; else: ?> <?php wp_reset_query(); ?> <h4>404 -brak strony...</h4> <p>Wielka otchłań internetu połknęła wskazaną stronę - wyszukaj interesującą Cię treść korzystając z menu.</p> <?php endif; ?> </div> </div> </div> </div> </div> 

Solutions Collecting From Web of "Отдельный пост-дисплей списка всех сообщений + конкретная запись"

Когда загружается шаблон одиночной почты, WordPress уже запросил базу данных для этого сообщения. Когда вы вызываете query_posts('post_type=post&posts_per_page=1'); , а затем запустить цикл, это просто загружает и выводит один пост, который по умолчанию будет последним сообщением. Он также имеет побочный эффект перезаписи исходного основного запроса.

Вам не нужно, и вы никогда не должны вызывать query_posts в шаблоне.

Чтобы загрузить дополнительные сообщения рядом с единственным сообщением, которое вы просматриваете в данный момент, используйте WP_Query и оставите основной запрос неизменным.

 // load and display all posts // setting post_type is unnecessary, it will default to post $all_posts = new WP_Query( array( 'posts_per_page' => -1 ) ); while( $all_posts->have_posts() ): $all_posts->the_post(); // your markup for all posts endwhile; // reset the global post variable wp_reset_postdata(); // now output the single post // no need for a query, the post data already exists // in the global $wp_query while( have_posts() ): the_post(); // your markup for the single post endwhile;