robiniknight
  • 0
Новичок

WordPress повторяет содержимое в случайном месте

  • 0

Я создал серию тематических страниц. На одной странице сообщения пользователей (post_type=messages) попадают на вкладку на странице. Содержимое отображается на месте, как и заголовок и т. д. Содержимое снова отображается после закрытия страницы. Нет, что бы это произошло в теме.

Кроме того, post_type=bookings, которые отображаются на другой вкладке, правильно повторяют содержимое. Но внутри этого цикла есть еще один цикл, который показывает post_type=items, показывающий конфигурации каждого бронирования. Затем он повторяет последний элемент как еще одно бронирование.

Что, черт возьми, происходит.

Есть идеи?

Чудесный

—- РЕДАКТИРОВАТЬ —

Ошибка возникает из-за циклов внутри циклов. Поэтому нам нужно использовать функцию get_posts вместо query_posts. Я реализовал это так.

<?php $congigs = get_posts('post_type=items&author='.$current_user->ID.'&tag='.$bkpostid.'&numberposts=-1');
                    foreach($congigs as $posts) :  setup_postdata($posts); ?> <li><?php the_title(); ?></li>
<?php endforeach; ?>

Должно быть 8 таких сообщений, и он их получает, однако <? the title ?> показывает 8 копий основного заголовка всей страницы, а не заголовка сообщения элемента.

Есть идеи. Спасибо,

Share
  1. Пожалуйста, предоставьте код, используемый для цикла, который вызывает проблему.

    • 0
  2. <?php $congigs = get_posts('post_type=items&author='.$current_user->ID.'&tag='.$bkpostid.'&numberposts=-1');
                        foreach($congigs as $posts) :  $title = $posts->post_title; ?> <li><?php echo $title; ?></li>
    <?php endforeach; ?>
    
    • 0
  3. Попробуйте написать wp_reset_query(); сразу после основного цикла. Вы также можете попробовать заглянуть в WP_Query:

    // write this at the top of the file  
    global $wp_query;  
    print_r( $wp_query );  
    
    // then try to look at what exactly you're calling:  
    // after $congigs = get_posts(...):  
    print_r( $congigs );
    // inside foreach ( $congigs...
    print_r( $posts );
    
    • 0

Оставить ответ

You must login to add an answer.