事情是,在我的主题主页中,我想在不同的 Div 中显示不同类别的帖子。每个 DIV 将包含来自一个类别的 3 个帖子。我需要一个可以从特定类别中选择最后 3 个帖子的循环。找不到任何合适的答案。
为了更容易解释,这里是内容部分的演示图片,
http://i.imgur.com/5QSzAIS.png
如果有人帮助我编写代码,这将是一个很大的帮助!
事情是,在我的主题主页中,我想在不同的 Div 中显示不同类别的帖子。每个 DIV 将包含来自一个类别的 3 个帖子。我需要一个可以从特定类别中选择最后 3 个帖子的循环。找不到任何合适的答案。
为了更容易解释,这里是内容部分的演示图片,
http://i.imgur.com/5QSzAIS.png
如果有人帮助我编写代码,这将是一个很大的帮助!
<?php query_posts('cat=10&posts_per_page=3'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
这应该让你开始。您需要使用此代码两次。在它说的地方cat=10
,您应该输入您的类别 ID(当您从管理面板单击类别时,您可以检查这一点,浏览器将显示类似http://yourwebsite.com/wp-admin/edit-tags .php?action=edit&taxonomy=category&tag_ID=4&post_type=post )
它说tag_ID
的是您的类别的ID。
我目前正在我正在构建的网站页面上使用不同的方法,它允许我在一个页面中运行多个循环并为每个循环指定类别。我个人更喜欢这种方法,因为它对我来说更直接,我可以使用 slug 而不是 ID 来定义类别。
而不是使用have_posts()
等,你WP_Query()
在定义你的数组之后使用,然后wp_reset_postdata()
结束你的循环。好处是您可以以这种方式继续运行循环。
我还使用 加载来自帖子中自定义字段的数据get_post_meta
,但这种方法在没有这些东西的情况下也可以工作。
<div class="audioGrid">
<?php
$args = array( 'post_type' => 'post',
'category_name' => 'audio',
'posts_per_page' => 3,
'order' => 'DESC' );
$query1 = new WP_Query($args);
while ( $query1->have_posts() ) {
$query1->the_post();
?>
<div id="<?php echo( basename(get_permalink()) ); ?>" class="grid_item">
<?php the_post_thumbnail( 'audio-thumb' ); ?>
<h3><?php the_title(); ?></h3>
<p><?php echo get_post_meta($post->ID, 'post_description', true); ?></p>
<a target="blank" href="<?php echo get_post_meta($post->ID, 'audio_link', true); ?>"></a>
</div>
<?php the_content(); ?>
<?php } ?>
</div> <?php // end Audio Grid ?>
<?php wp_reset_postdata(); ?>
<div class="videoGrid">
<?php
$args2 = array( 'post_type' => 'post',
'category_name' => 'video',
'posts_per_page' => 3,
'order' => 'DESC' );
$query2 = new WP_Query($args2);
while ( $query2->have_posts() ) {
$query2->the_post();
?>
<div id="<?php echo( basename(get_permalink()) ); ?>" class="grid_item">
<?php the_post_thumbnail( 'video-thumb' ); ?>
<h3><?php the_title(); ?></h3>
<p><?php echo get_post_meta($post->ID, 'post_description', true); ?></p>
<a target="blank" href="<?php echo get_post_meta($post->ID, 'video_link', true); ?>"></a>
</div>
<?php the_content(); ?>
<?php } ?>
</div> <?php // end Video Grid ?>
<?php wp_reset_postdata(); ?>
我正在做的另一件很酷的事情是使用自定义字段来定义事物的顺序,并使用meta_key
并meta_value_num
获取该数字并强制按我想要的方式进行排序,并且由于该站点并不复杂,因此以这种方式定义顺序很方便。我只是使用前导零来简化:001、002、003 等
<?php
$args2 = array( 'post_type' => 'post',
'category_name' => 'video',
'posts_per_page' => 3,
'meta_key' => 'video_order',
'orderby' => 'meta_value_num',
'order' => 'ASC' );
$query2 = new WP_Query($args2);
while ( $query2->have_posts() ) {
$query2->the_post();
?>
无论如何,如果您需要使用多个循环从不同类别中提取帖子,希望这会有所帮助。