Я пытаюсь получить сначала содержимое одной страницы (тот, который запрашивается), а затем в небольшом разделе ниже я хочу отобразить заголовок моих bloggposts как раздел «Последние новости».
Проблема в том, что если я сначала использую <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
чтобы получить содержимое страницы. Затем попытайтесь использовать $posts_array = get_posts( $args );
чтобы получить blogposts, я просто получаю заголовок страницы дважды. Очевидно, что функция get_posts
принимает идентификатор страницы вместо того, чтобы зацикливать через blogposts. Есть ли способ сказать get_posts для поиска первых 5 идентификаторов blogpost, а не идентификатора текущей страницы?
Благодарен за все ответы, предложения, подсказки или подсказки 🙂
вот мой код:
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <div class="mcenter"> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?> role="article"> <header class="entry-header"> <h1 class="entry-title"><?php the_title(); ?></h1> </header><!-- .entry-header --> <div class="entry-content"> <?php the_content(); ?> <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'monster' ), 'after' => '</div>' ) ); ?> <?php edit_post_link( __( 'Edit', 'monster' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .entry-content --> </article><!-- #post-<?php the_ID(); ?> --> </div> <?php endwhile; // end of the loop. ?> <?php $args = array( 'numberposts' => 5, 'offset' => 0, 'category' => , 'orderby' => 'post_date', 'order' => 'DESC', 'include' => , 'exclude' => , 'meta_key' => , 'meta_value' => , 'post_type' => 'post', 'post_mime_type' => , 'post_parent' => , 'post_status' => 'publish'); $posts_array = get_posts( $args ); ?> <div id="news"> <div id="news-roll" class="mcenter"> <h3><?php _e('Siste nytt:', 'monster'); ?></h3> <?php $count = 1; foreach ($posts_array as $monster_news) { setup_postdata($monster_news); if ($count == 1) { echo '<p class="first-news">'; } else { echo '<p>'; } the_title(); echo '</p>'; } $count = null; ?> </div> </div>
Изменить:
foreach ($posts_array as $monster_news) { setup_postdata($monster_news);
Для того, чтобы:
foreach ($posts_array as $post) { setup_postdata($post);
Кажется, setup_postdata()
фактически не модифицирует $post
(это было для меня новостью).
PS также пуст ,
в массиве … Я не уверен, как он на самом деле работает для вас с этим.