我的主页顶部有以下平铺元素:
<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 -->
我想在图块2、3和4中显示3篇最近/查看过的帖子;只是标题、日期和该帖子的图像,它从我定义的自定义字段中获取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的新手!
SO网友:s_ha_dum
首先,不要使用query_posts()
. 只是不要:
应该注意的是,使用此replace the main query 在页面上可以increase page loading times, 在最坏的情况下more than
doubling the amount of work needed or more. 虽然易于使用,但该功能prone to confusion and problems 过后有关详细信息,请参阅下面关于注意事项的注释。
http://codex.wordpress.org/Function_Reference/query_posts (重点矿山)
它造成了各种各样的破坏globals
然后您必须更正的页面。使用新的WP_Query
对象
其次,没有循环,这意味着代码中没有迭代查询结果的内容。
query_posts("post_per_page=3"); the_post(); ?>
...
<?php wp_reset_query();
The
$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();
未经测试,但应该非常接近。
我应该补充一点,上面的代码将复制您在代码中试图实现的内容。然而,您的标题是“如何使用wordpress在主页上的特殊平铺中显示3篇最近/查看过的帖子?”。您的代码所做的只是提取最近发布的帖子,而不是最近查看的帖子。据我所知,WordPress不跟踪页面浏览计数。要做到这一点,您需要一个插件或一个完全不同的代码块。