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

Имейте пользовательский тип сообщения, где каждое сообщение является галереей, и у каждого из них есть поле расширенных пользовательских полей, которое имеет 5-20 изображений. Кроме того, у вас есть настраиваемый почтовый шаблон типа post, как показано ниже (удаляется большая часть кода, чтобы сосредоточиться на деталях, имеющих отношение к этому.) Комментарии в коде объясняют, что делает каждая часть. В целом, похоже, все работают, однако независимо от того, в какой должности я участвую в этом настраиваемом типе сообщений, например example.com/gallery/gallery-1, example.com/gallery/gallery-2, example.com/gallery/ галерея-3 и т. д. На каждой странице отображается одно и то же изображение и одинаковые миниатюры. Похоже, что вытащить первую галерею с первого поста, а не на каждую страницу, проверяя, чтобы вытащить элементы галереи, связанные с этой страницей.

Я уверен, что это просто, например, необходимость сбросить / сбросить цикл или что-то подобное, но изо всех сил пытается найти правильный способ описать его, чтобы найти ответ в Google. Если бы он работал изначально, но как только я должен был добавить петли внутри циклов, проблема началась. Если у кого-то есть идеи, это здорово. Будет продолжать исследования в то же время.

<?php get_header(); ?> <div id="main"> <?php //Checks gallery custom post type and finds the current pages entry $args = array( 'post_type' => 'customers_gallery', 'posts_per_page' => 1 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); ?> <div> <?php //Looks up the advanced custom field gallery associated with this post $hero = get_field('gallery_images'); ?> <!-- //Show the first image in that gallery --> <img src="<?php echo $hero[0]['url']; ?>" class="main-image" style="width: 484px;"> <!-- //Shows title of this page --> <h3><?php the_title(); ?></h3> <?php //Looks up the advanced custom field gallery associated with this post $images = get_field('gallery_images'); //Loops through all the gallery image showing a thumbnail for each and each is linked to its full size if( $images ): ?> <ul> <?php foreach( $images as $image ): ?> <li> <a href="<?php echo $image['url']; ?>"> <img src="<?php echo $image['sizes']['gallery-landscape-thb']; ?>" alt="<?php echo $image['alt']; ?>" /> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?> <div> <ul> <?php //Looks up all the pages in this custom post type and lists the titles of the first 12 and linked to respective pages $custom_query = new WP_Query( array( 'post_type' => 'customers_gallery', 'posts_per_page' => 12 ) ); if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; endif; wp_reset_query(); ?> </ul> </div> </div> <?php endwhile; ?> </div> <!-- /#main --> <?php get_footer(); ?> 

ОБНОВИТЬ

Некоторые отметили добавление сброса, но я все еще думаю, что проблема – это что-то еще. Так как я могу удалить почти весь код в шаблоне и получить его только для следующего, и он по-прежнему эхо имеет то же название, что и mater, который отправляет им просмотр в пользовательском типе публикации галереи (он показывает первый заголовок в списке сообщений в (Custom Post type), где он должен вытащить заголовок для этой конкретной страницы. Название на вкладке верное.

 <?php get_header(); ?> <?php $args = array( 'post_type' => 'customers_gallery', 'posts_per_page' => 1 ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); ?> <?php echo the_title(); ?> <?php endwhile; ?> <?php get_footer(); ?> 

ОБНОВЛЕНИЕ 2

Вернулся к исходному коду, который я опубликовал в этом сообщении, и просто удалил код, указанный в моем втором сообщении aka, что $ args = array ('post_type' => 'customers_gallery' … и все работает. пытался создать цикл для настраиваемого типа сообщений, но выглядит так, как будто это не требуется при использовании однофайлового [custom-post-type-name] .php.

Solutions Collecting From Web of "Пользовательский тип сообщения, показывающий одинаковое сообщение на всех страницах"

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

Но чтобы решить вашу проблему конкретно, вам нужно сбросить свои первые данные после WP_Query после завершения второго WP_Query. Кроме того, вам нужно будет только сбросить данные postdata, если вы находитесь в вашем операторе if, а не после него:

Заменить:

 <?php endwhile; endif; wp_reset_query(); ?> 

с:

 <?php endwhile; $loop->reset_postdata(); endif; ?> 

Замечание: поскольку ваш второй WP_Query фактически не имеет ничего общего с первым WP_Query, я бы либо переместил ваш второй WP_Query ($ custom_query) за пределы первого цикла while.

Вероятно, немного больше происходит, чем только это, но socki03 находится на пути.

Вам нужно заменить

 <?php endwhile; endif; wp_reset_query(); ?> 

с

 <?php endwhile; wp_reset_postdata(); endif; ?> 

Большая проблема заключается в том, что вам нужно пройти весь свой код и убедиться, что вы сбросили postdata на каждый пользовательский wp_query, который вы создали. Все они должны быть сброшены или вы будете вызывать неправильный запрос по всему сайту.

Проверьте каждый запрос wp и убедитесь, что после того, как вы используете wp_reset_postdata();