Как получить список сообщений на статической странице, кроме первой страницы?
-
16-10-2019 - |
Вопрос
Таким образом, для тысяч, использующих WP в качестве CMS, типичным подходом является использование опции «Статическая страница» со страницы «Настройки»> «Чтение администратора».
Тем не менее, я в другом сценарии: наша первая страница отображает статический контент (Home.php Шаблон управляет этим), и у нас есть вторичная статическая страница (называемая Новости), который должен отображать список самых последних сообщений (то, что вы обычно находите на первой странице среднего блога).
Я настроил страницу новостей, чтобы использовать пользовательский шаблон (Page-newsindex.php); На основе шаблона Twentyten's Archive.php, этот файл отображает заголовок, вызовы rewind_posts (), а затем вызывает get_template_part ('loop', 'newsindex'), чтобы мы в конечном итоге в Loop.php (или Loop-newsindex.php, если это существуют). Персиковый.
Loop.php Есть ли ваша типичная структура петли (опять же, на основе шаблона Twentyten Lo
<?php while ( have_posts() ) : the_post(); ?>
Однако, когда мы получаем доступ к странице, этот цикл, похоже, использует текущий URL -адрес для определения сообщений для отображения, как если бы страница новостей определяла категорию, что не относится к нам. Что будет для меня подходящим Query_posts для моделирования Query_posts, которые WP обычно работает для вас, когда вы попадаете на первую страницу типичного блога?
Решение
То, как я получаю сообщения в своем блоге, - это использовать следующее:
<?php $recentPosts = new WP_Query(); $recentPosts->query('showposts=5&cat=CAT_ID_GOES_HERE'); while($recentPosts->have_posts()): $recentPosts->the_post(); ?>
Затем вы пойдете и создадите код для управления отображением каждого поста. Итак, для действительно простого примера:
<h1 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
Затем, в конце постов, вам просто нужно закончить свою петлю:
<?php endwhile; ?>
Другие советы
Просто чтобы быть уверенным - вы не используете Reading
Настройки здесь вообще? Просто обычная домашняя страница и обычная статическая страница?
- ваш
News
Страница является статической страницей, поэтому ее цикл (нативный цикл WP, созданный из URL), должен отражать это (поэтому не уверен, как он кажется категорией); query_posts()
это функция, предназначенная для настройки такой нативной петли. Вы не должны использовать его здесь, потому что вы будете пытаться принудительно изменить статическую страницу на страницу индекса, которая заканчивается ужасными ошибками.- Вы можете использовать пользовательский
WP_Query
или жеget_posts()
Чтобы отобразить несколько сообщений на статической странице, BU, вероятно, вы не получите страницу для работы.
В целом я чувствую, что вы изобретаете колесо здесь. Settings > Reading
кажется идеальной матч.
Front page
со статическим содержанием иfront-page.php
шаблон.Posts page
это автоматически будет использовать цикл по умолчанию для последних сообщений или может быть настроен с помощьюhome.php
шаблон.
Кажется, это точно так же, как вы пытаетесь получить, нет?
PS Twentyten loop.php
пугает меня. Похоже, что удобство использования и здравый смысл были принесены в жертву для максимальной условной гибкости.
Я не уверен, что это именно то, что вам нужно, но, возможно, вы хотели бы взглянуть на мой обходной путь. Это функция, которая отображает список постов, где бы вы ни захочется, с миниатюрами для первого изображения поста.
http://wpworks.wordpress.com/2011/02/01/display-wordpress-post-list-with-custom-size-thumbnails/
Надеюсь, вы найдете это полезным.
С уважением,
Альваро