Intereting Posts
В противном случае файл не работает в дочерней теме? Изменение статуса страницы после события (поиск рекомендаций по лучшей практике) Отправлять уведомление администратору при отправке новой персонализированной почты Фильтр wp-custom-menu удаляет класс current_page_item Настройка 3,5-дюймового всплывающего окна «Добавить медиа» (Backbone.js) Добавление прямой ссылки на редактор сообщений в меню администратора Как установить выбранный атрибут на параметр после запроса фильтра? Подкатегории сохраняют переадресацию на страницы с одинаковыми слизнями Получите от автора одно сообщение в пользовательском типе сообщения Как правильно добавить другое приложение в WordPress? Как создать другую версию моего сайта на основе той же базы данных как добавить правило rewrite в wordpress default post type Как настроить wp_list_categories Просмотрите семейное древо и найдите избранное изображение Какую таблицу хранит порядок сортировки носителей?

the_excerpt не отображается

У меня есть цикл, где я показываю все сообщения на сайте, проблема в том, что the_excerpt не отображается. Что я делаю не так?

<?php $all_posts = get_posts(array('numberposts' => -1)); $total_posts = count($all_posts); $posts_per_column = intval($total_posts / 3); $count = 0; $col = 1; foreach($all_posts as $post): ?> <!--post--> <div class='post' id='article<?php echo $count; ?>'> <div class='thumb'> <a href='<?php the_permalink() ?>'> <!--todo: round thumb images and make them of variable height--> <?php the_post_thumbnail() ?> <?php $cat = get_the_category(); $cat_long = $cat[0]->cat_name; $cat_split = explode(' ', $cat_long); $cat_short = strtolower($cat_split[0]); ?> </a> <span class='tag <?php echo $cat_short ?>'><?php echo $cat_long ?></span> </div> <div class='inner <?php echo $cat_short ?>'> <h2 class='entry-title'><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2> </div> <div class='entry-content'> <?php the_excerpt() ?> </div> </div> <!--end post--> 

Вы должны использовать setup_postdata

 foreach($all_posts as $post): setup_postdata($post); // the rest of your loop 

Если вы посмотрите на документы для get_posts вы увидите, что во всех примерах.

Измените это:

 <?php $all_posts = get_posts(array('numberposts' => -1)); $total_posts = count($all_posts); $posts_per_column = intval($total_posts / 3); $count = 0; $col = 1; foreach($all_posts as $post): ?> 

к этому:

 <?php $all_posts = new WP_Query(array('posts_per_page' => -1)); $total_posts = $all_posts->found_posts; $posts_per_column = intval($total_posts / 3); $count = 0; $col = 1; if($all_posts->have_posts()): while($all_posts->have_posts()): $all_posts->the_post(); ?> в <?php $all_posts = new WP_Query(array('posts_per_page' => -1)); $total_posts = $all_posts->found_posts; $posts_per_column = intval($total_posts / 3); $count = 0; $col = 1; if($all_posts->have_posts()): while($all_posts->have_posts()): $all_posts->the_post(); ?> 

и в конце, у вас есть где-то в конце. Удалите его и поставьте:

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

Это правильный способ (на мой взгляд), как это делается – поэтому вы не можете достичь ошибки с переменной $ post, как это в вашем случае. В вашем случае, похоже, вы просто переопределили глобальную переменную $ post – мне интересно, как некоторые из ваших тегов «the_» работали, а некоторые – нет.