for
  • 0
Новичок

Как получить список сообщений на статической странице, отличной от главной страницы?

  • 0

Таким образом, для тысяч пользователей, использующих WP в качестве CMS, типичным подходом является использование параметра «Статическая страница» на странице администрирования «Настройки»> «Чтение».

Однако я нахожусь в другом сценарии: наша главная страница отображает статический контент ( шаблон home.php управляет этим), и у нас есть вторичная статическая страница (называемая News ), которая должна отображать список самых последних сообщений (то, что вы обычно найти на первой странице среднего блога).

Я настроил страницу новостей для использования пользовательского шаблона ( page-NewsIndex.php ); основанный на шаблоне TwentyTen archive.php, этот файл отображает заголовок, вызывает rewind_posts(), а затем вызывает get_template_part(‘loop’, ‘newsindex’), так что мы оказываемся в loop.php (или loop-newsindex.php, если он существует). Персиковый.

Loop.php имеет типичную структуру циклов (опять же, на основе шаблона loop.php TwentyTen, измененного для упрощения, поскольку нам не нужны 3 типа циклов):

<?php while ( have_posts() ) : the_post(); ?>

Однако, когда мы обращаемся к странице, этот цикл, похоже, использует текущий URL-адрес для определения отображаемых сообщений, как если бы страница новостей определяла категорию, что не так для нас. Какие query_posts я бы использовал для имитации запросов query_posts, которые WP обычно запускает для вас, когда вы попадаете на первую страницу типичного блога?

Share
  1. Я получаю сообщения в своем блоге следующим образом:

    <?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>
    

    Затем в конце сообщений вам просто нужно закончить цикл while:

    <?php endwhile; ?>
    
    • 0
    • Похоже, это может сработать для нас — я попробую, как только смогу, и дам вам знать (я приму ответ, как только смогу подтвердить, что он работает) — Спасибо!

      • 0
    • Наконец-то добрался до проверки вашего предложения, и оно отлично работает для меня. В итоге я использовал query_posts(»); вместо создания нового экземпляра WP_Query, но это только потому, что в моем случае мне действительно не нужно использовать основной объект запроса. Спасибо, что поставили меня на правильный путь!

      • 0
    • Рад, что это сработало для вас 🙂

      • 0
    • правильно: пока вообще не использую настройку «Чтение». Я знаю, что это звучит очень похоже на случай, для которого предназначался параметр «Чтение» > «Главная страница» — можно попытаться соответствующим образом переработать тему, если у нас нет более быстрого решения — спасибо (и да, я не знаю, почему петля в новостях действует как категория — подозревал, что WP просматривает URL-адрес запроса, находит /News и действует так, как будто это архив для категории новостей)

      • 0
  2. Просто чтобы быть уверенным — вы вообще не используете Reading настройки здесь? Просто обычная домашняя страница и обычная статическая страница?

    • ваша News страница является статической страницей, поэтому ее цикл (собственный цикл WP, созданный из URL-адреса) должен отражать это (поэтому не уверен, как это выглядит как категория);
    • query_posts() это функция, предназначенная для настройки такого родного Loop. Вы не должны использовать его здесь, потому что вы попытаетесь принудительно изменить статическую страницу на страницу индекса, что приведет к ужасным ошибкам.
    • вы можете использовать обычай WP_Query или get_posts() отображать некоторые сообщения на статической странице, но, скорее всего, у вас не будет работать разбиение на страницы.

    В общем, я чувствую, что вы изобретаете велосипед здесь. Settings > Reading кажется идеальной парой.

    1. Front page со своим статическим содержимым и front-page.php шаблоном.
    2. Posts page который будет автоматически использовать Цикл по умолчанию для последних сообщений или может быть настроен с помощью home.php шаблона.

    Это похоже на то, что вы пытаетесь получить, нет?

    PS TwentyTen loop.php меня пугает. Похоже, юзабилити и здравому смыслу принесли в жертву максимальную условную гибкость.

    • 0
  3. Я не уверен, что это именно то, что вам нужно, но, возможно, вы хотели бы взглянуть на мой обходной путь. Это функция, которая отображает список постов в любом месте с миниатюрами для первого изображения поста.

    http://wpworks.wordpress.com/2011/02/01/display-wordpress-post-list-with-custom-size-thumbnails/

    Я надеюсь, что вы найдете это полезным.

    С уважением,

    Альваро

    • 0

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

You must login to add an answer.