Как показать 3 последних / просмотренных сообщения в специальных фрагментах на домашней странице с помощью WordPress?

У меня эти элементы плитки на верхней части моей домашней страницы:

<div class="tile1"> <div class="tile-textbox" style="color: #22284f;">Just Some Title</div> </div> <div class="tile2"> <img class="post-image" src="images/sample-large-2.jpg"/> <div class="tile-datebox"> <img src="images/video-icon.png" > <p>2013/2/25</p> <div class="tile-info"><h1><a href="index2.html">Title 1</a></h1></div> </div> </div> <div class="tile3"> <img class="post-image" src="images/sample-mid-2.jpg"/> <div class="tile-datebox"> <img src="images/image-icon.png" > <p>2013/5/15</p> <div class="tile-info"><h1>Title 2</h1></div> </div> </div> <div class="tile4"> <img class="post-image" src="images/sample-mid-3.jpg"/> <div class="tile-datebox"> <img src="images/text-icon.png" > <p>2013/6/17</p> <div class="tile-info"><h1>Title 3</h1></div> </div> </div> <div class="tile5"> <div class="tile-textbox" style="color: #ffffff;">Another Title</div> </div> </div> <!-- END Tile Holder --> 

и я хочу показать 3 последних / просмотренных сообщения в плитке 2, 3 и 4; просто название, дата и изображение этого сообщения, что он получает URL-адрес из настраиваемых полей, которые я определил, я попытался использовать:

 . . . <?php query_posts("post_per_page=3"); the_post(); ?> <div class="tile2"> <img class="post-image" src="<?php echo get_post_meta($post->ID, 'post_image', true) ?>"/> <div class="tile-datebox"> <img src="<?php echo get_post_meta($post->ID, 'post_icon', true) ?>" > <p><?php the_time('F jS, Y') ?></p> <div class="tile-info"><h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1></div> </div> </div> <div class="tile3"> <img class="post-image" src="<?php echo get_post_meta($post->ID, 'post_image', true) ?>"/> <div class="tile-datebox"> <img src="<?php echo get_post_meta($post->ID, 'post_icon', true) ?>" > <p><?php the_time('F jS, Y') ?></p> <div class="tile-info"><h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1></div> </div> </div> <div class="tile4"> <img class="post-image" src="<?php echo get_post_meta($post->ID, 'post_image', true) ?>"/> <div class="tile-datebox"> <img src="<?php echo get_post_meta($post->ID, 'post_icon', true) ?>" > <p><?php the_time('F jS, Y') ?></p> <div class="tile-info"><h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1></div> </div> </div> <?php wp_reset_query(); ?> . . . 

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

проблема в том, что он просто получает один пост и показывает его там, что не так? что я пропустил? помогите, я новичок в мире wordpress!

Solutions Collecting From Web of "Как показать 3 последних / просмотренных сообщения в специальных фрагментах на домашней странице с помощью WordPress?"

Во-первых, не используйте query_posts() . Просто не делайте этого:

Следует отметить, что использование этого для замены основного запроса на странице может увеличить время загрузки страницы , в худшем случае более чем удваивает объем требуемой работы или больше . Хотя она проста в использовании, функция также подвержена путанице и проблемам позже. Дополнительную информацию см. В примечании ниже.

http://codex.wordpress.org/Function_Reference/query_posts (акцент мой)

И он вызывает всевозможные хаосы с globals на странице, которые вам нужно исправить. Используйте новый объект WP_Query .

Во-вторых, у вас нет цикла, что означает, что в вашем коде нет ничего, что итерации по результатам запроса.

 query_posts("post_per_page=3"); the_post(); ?> ... <?php wp_reset_query(); 

Переменная $post будет установлена ​​в первую почту, возвращаемую запросом, но там нет ничего, чтобы переходить к другим сообщениям.

 $qry = new WP_Query("post_per_page=3"); if ($qry->have_posts()) { while ($qry->have_posts) { // this is your loop $qry->the_post(); // sets $post to the current post in the Loop ?> <div class="tile'.$qry->current_post.'"> <img class="post-image" src="<?php echo get_post_meta($post->ID, 'post_image', true) ?>"/> <div class="tile-datebox"> <img src="<?php echo get_post_meta($post->ID, 'post_icon', true) ?>" > <p><?php the_time('F jS, Y') ?></p> <div class="tile-info"><h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1></div> </div> </div> <?php } } wp_reset_postdata(); 

Непроверенный, но это должно быть очень близко.

Я должен добавить, что приведенный выше код дублирует то, что вы пытаетесь достичь в своем коде. Тем не менее, ваш заголовок гласит: «Как показать 3 последних / просмотренных сообщения в специальных фрагментах на домашней странице с помощью WordPress?». Все, что делает ваш код, – это вытащить последние опубликованные сообщения, а не самые последние просмотренные. Насколько мне известно, WordPress не отслеживает количество просмотров страниц. Для этого вам понадобится плагин или целый блок кода.