如何获得特定类别中最后N个帖子的链接?

时间:2014-10-30 作者:djnotes

我想显示特定类别中最后N篇文章的标题。我正在使用以下代码:

        <?php
        $cat_id=get_cat_ID(\'category1\');
            $posts = get_posts ("cat=$cat_id&posts_per_page=3");
            if ($posts) 
        {
        foreach ($posts as $post):
            setup_postdata($post); ?>
            <h2><?php
            //the_title(); 
            ?>
            </h2>
            <?php next_post_link( \'%link\', \'Next post in category\', TRUE ); ?>
            <?php //the_content();
            ?> 
            <?php endforeach;
        }
            ?>  
但是,我没有得到最后3篇文章的标题,而是得到了两个(而不是三个)链接,更糟糕的是,返回的链接不是文章标题。他们只是简单地读了“类别中的下一篇文章”。然而,他们的href工作得很好(我可以通过单击他们打开帖子内容)。我应该如何修改代码,以便获得最后N篇类别为“category1”的帖子的标题,在这里,我可以在单击链接时打开帖子内容(在新页面中)?

3 个回复
最合适的回答,由SO网友:Robert hue 整理而成

首先,没有名为cat 在里面get_posts. 使用category 而是输入逗号分隔的类别ID或category_name 直接插入类别名称。

其次,在代码中,您已经注释掉了帖子的标题。请尝试此代码。

<?php
    $cat_id = get_cat_ID(\'category1\');
    $posts = get_posts( "category=$cat_id&posts_per_page=3" );
    if ($posts) {
        foreach ($posts as $post): setup_postdata($post); ?>
            <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <?php endforeach;
    }
?>
显示两篇帖子的原因可能是因为您的类别只有两篇帖子。确保你的类别至少有3篇帖子。

你可以改变posts_per_page=3 在上面的代码中,添加到您想要列出的任意数量的帖子。如果要列出10篇帖子,请将其更改为posts_per_page=10 如果要列出所有帖子,请使用-1 像这样posts_per_page=-1

SO网友:Serkan Algur

您可以在主题中使用此功能。将此函数添加到主题的函数中。php和调用函数。此功能提供类别中的最新帖子。

function latest_from_category( $post_count, $category) {
    $cid = get_cat_ID($category);
    $last_by_cat = new WP_Query(\'orderby=date&cat=\'.$cid.\'&posts_per_page=\'.$post_count);
    echo \'<h4>Latest Post From Category</h4> <ul>\';
    while ($last_by_cat->have_posts()) : $last_by_cat->the_post();
?>
    <li><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;
echo \'</ul>\';
}
此函数的用法。

<?php latest_from_category(\'5\',\'WordPress\');?>
这个数字定义了链接的数量,WordPress是一个类别名称。

SO网友:djnotes

@Rebert Hue您的代码运行良好。但是,在签出您编辑的答案之前,我对代码进行了如下修改,这也正确设置了href:

<?php
                $cat_id=get_cat_ID(\'mycategory\');
                    $posts = get_posts ("cat=$cat_id&posts_per_page=3");
                    if ($posts) 
                {
                foreach ($posts as $post):
                    setup_postdata($post); ?>
               <h2>
                    <a href="<?php _a(get_permalink());">
                           <?php the_title()?>

                    </a>
               </h2>

                    <?php endforeach;
                }
                    ?>

结束

相关推荐

自定义帖子类型档案与‘POSTS_PER_PAGE’无关=>-1

我有一个自定义的帖子类型存档,其中WP_Query 用于检索帖子。我想禁用分页并显示此存档上的所有帖子,但以下查询不起作用:$args = array( \'post_type\' => array( \'cpt_sports\', ), \'posts_per_page\' => -1, \'orderby\' => \'menu_order\', \'order\' => \