显示来自特定类别的最后5个帖子

时间:2013-03-28 作者:Nikki Mather

我正在尝试显示特定类别的最后5篇文章,这些文章将链接到一个函数,以便我可以在Wordpress页面中插入短代码。我的代码如下,它做了我需要的一切(虽然我也想添加特色图片),但它不显示特定类别的帖子。

我尝试了很多方法,但都找不到有效的修复方法。

function Last5posts()
{
$args = array( "showposts" => 5, "category" => 3 );                  
query_posts($args);

$content = "";

if( have_posts() ) : 

    while( have_posts() ) :

        the_post();
        $link = get_permalink();
        $title = get_the_title();
        $date = get_the_date();                              

        $content .= "<div class=\'latest-posts\'>";
        $content .= "<h3><a href=\'$link\' target=\'_top\'>$title / $date</a </h3>\\n";
        $content .= "<p class=\'excerpt\'>" . get_the_excerpt() . "</p>";
        $content .= "</div>";

    endwhile;

    wp_reset_query(); 

endif;

return $content;
}

add_shortcode(\'Last5Posts\', \'Last5posts\' );   
我尝试用下面的代码替换第3行和第4行,但它在第31行抛出了一个错误“语法错误,意外的“}”。

$catquery = new WP_Query( \'cat=3&posts_per_page=10\' );
while($catquery->have_posts()) : $catquery->the_post(); 
任何帮助都将不胜感激。

2 个回复
最合适的回答,由SO网友:Nathan Powell 整理而成

下面是运行此操作的正确方法。我正在使用\'category_name\' 在最近的主题代码中,因为它更容易阅读和记忆。它使用类别slug。在这里,我正在检索“未分类”中的最后5篇帖子。

function Last5posts()   {
    $args = array( \'posts_per_page\' => 5, \'category_name\' => \'uncategorized\');                  
    $last_5_posts_query = new WP_Query( $args );
    while($last_5_posts_query->have_posts()) : 
        $last_5_posts_query->the_post();
        $link = get_permalink();
        $title = get_the_title();
        $date = get_the_date();                              

        $content .= \'<div class="latest-posts">\';
        $content .= \'<h3><a href=\'.$link.\' target="_top">\'.$title.\' / \'.$date. \'</a></h3>\';
        $content .= \'<p class="excerpt">\' .get_the_excerpt(). \'</p>\';
        $content .= \'</div>\';
    endwhile;

return $content;
}

add_shortcode(\'Last5Posts\', \'Last5posts\' );

SO网友:Adi

只需更换$args 用这个。

$args = array(\'posts_per_page\' => 5, \'post_type\' => \'post\', \'post_status\' => \'publish\',\'orderby\'=>\'ASC\' );
这显示了最后5篇帖子。

结束