Wordpress最新帖子的特色图片来自类别

时间:2015-03-03 06:01:51

标签: wordpress

快速Wordpress问题。

我想显示我的类别中的最后30个帖子"照片",但只显示相关页面上的精选图片作为链接,将用户带到实际帖子。

我设法做到了这一点,但它显示了所有类别的帖子,而不是"照片"类别。代码I使用的是在下面。

我确定它很简单,但我很想知道如何仅显示照片类别中的近期帖子(作为精选图片)。

由于



<!-- In functions.php -->
function recentPosts() {
	$rPosts = new WP_Query();
	$rPosts->query('showposts=100');
		while ($rPosts->have_posts()) : $rPosts->the_post(); ?>
		<div class="photos">
			<li class="recent">
				<a href="<?php the_permalink();?>"><?php the_post_thumbnail('recent-thumbnails'); ?></a>
			</li>	
		</div>
		<?php endwhile; 
	wp_reset_query();
}


<!-- this is on the page template -->
<?php echo recentPosts(); ?>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

只需将类别选择添加到您的查询中即可。

<强>替换

$rPosts = new WP_Query();
$rPosts->query('showposts=100');

。通过

$rPosts = new WP_Query('category_name=photos&showposts=100');

参考:http://codex.wordpress.org/The_Loop#Exclude_Posts_From_Some_Category

答案 1 :(得分:0)

您需要通过提供类别ID cat=1来提供您希望仅发布特定类别的循环参数。将1替换为photos category

的ID
<!-- In functions.php -->
function recentPosts() {
    $rPosts = new WP_Query();
    $rPosts->query('showposts=100&cat=1');
        while ($rPosts->have_posts()) : $rPosts->the_post(); ?>
        <div class="photos">
            <li class="recent">
                <a href="<?php the_permalink();?>"><?php the_post_thumbnail('recent-thumbnails'); ?></a>
            </li>   
        </div>
        <?php endwhile; 
    wp_reset_query();
}


<!-- this is on the page template -->
<?php echo recentPosts(); ?>

答案 2 :(得分:0)

将类别ID添加到查询参数中。顺便说一下,最后一行的echo是多余的。您的函数直接输出HTML而不是返回它。

最后您的原始标记无效。李不能成为div的孩子,所以我在我的例子中已经纠正过了。

function recentPosts() {
    $rPosts = new WP_Query( array(
        'posts_per_page' => 30,
        'cat'            => 1
        'no_found_rows'  => true // more efficient way to perform query that doesn't require pagination.
    ) );

    if ( $rPosts->have_posts() ) :
        echo '<ul class="photos">'; 

        while ( $rPosts->have_posts() ) : $rPosts->the_post(); ?>
            <li class="recent">
                <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'recent-thumbnails' ); ?></a>
            </li>   
        <?php endwhile; 

        echo '</ul>';
    endif;

    // Restore global $post.
    wp_reset_postdata();
}


<!-- this is on the page template -->
<?php recentPosts(); ?>