Wordpress获取最近的帖子并显示标题和类别名称

时间:2012-07-14 23:03:52

标签: wordpress categories

我正在尝试列出我最近的帖子,这些帖子还显示了他们现在所处的类别

<?php   $args = array(  'numberposts' => 30)  ;
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
echo '<li>
    <a href="'.get_permalink($recent["ID"]).'"  title="Look'.esc_attr($recent["post_title"]).'"   > '.$recent["post_title"].'</a>   </li> ';    } ?>

这会显示帖子,但我希望它也显示类别名称。

任何帮助都会很棒,

由于

4 个答案:

答案 0 :(得分:2)

$cats = get_the_category($recent["ID"]);
$cat_name = $cats[0]->name; // for the first category

您可以在循环内尝试此操作(如果您有多个类别)

$cats = get_the_category($recent["ID"]);
foreach($cats as $cat)
{
    echo $cat->name." ";
}

答案 1 :(得分:1)

我能够使用以下内容实现此功能。

$cats[0]->name." "

所以在最近的帖子循环中你可以像这样使用它:

$args = array('numberposts' => 5, 'category' => '4,5' );
$recent_posts = wp_get_recent_posts( $args );    

foreach( $recent_posts as $recent ){
   $cats = get_the_category($recent["ID"]);
   echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'">' .   $cats[0]->name." " . $recent["post_title"].'</a> </li> ';
}

答案 2 :(得分:0)

我能够通过使用以下内容获得显示类别然后标题的列表。

 <?php
  $recentPosts = new WP_Query();
  $recentPosts->query('showposts=30');?>
 <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
 <?php the_category(" "); ?>-<a href="<?php the_permalink()?>">  <?php the_title(); ?></a> 
 <?php endwhile; ?><?php wp_reset_query()?>

我从来没有能够在我的原始代码中使用以下代码它总是显示为“数组”或Null(我猜我只是不知道正确的写入方式)我能够如果我创建了一个帖子并且只想显示其他类别的类别,则让它显示该类别。

 $cats = get_the_category($recent["ID"]);
 foreach($cats as $cat){
 echo $cat->name." "; }

答案 3 :(得分:0)

我使用了Jaco的答案,但是

    $cats[0]->name

给了我每个帖子中数组的第一个类别。我做的调整是在我的代码中使用增量运算符,一切都很好。

一个简单的例子:

    $recent_posts = wp_get_recent_posts( $args );

                    foreach( $recent_posts as $recent ){
                        $i = 0;
                        $cats = get_the_category($recent["ID"]);
                        echo $cats[$i]->name;
                        $i++;
                    }

                    wp_reset_query();