Link categories to last post

时间:2013-04-28 作者:Mike

我正在使用wp\\u list\\u categories()显示我的所有类别。但我希望子类别链接到该类别的最后一个帖子。例如:

 <ul>
   <li><a href="link-to-category-1">CATEGORY 1</a> 
       <ul>
           <li><a href="link-to-last-post-of-category-1-1">CATEGORY 1.1</a></li>
      </ul>
  </li>
</ul>
我该怎么做?

1 个回复
SO网友:Ralf912

这可以通过ne walker类完成

class Childcat2LastPost extends Walker_Category
{
    function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {

        if ( 0 != $category->category_parent ) {

            $args = array(
                    \'cat\'            => $category->term_id,
                    \'orderby\'        => \'post_date\',
                    \'order\'          => \'DESC\',
                    \'post_type\'      => \'post\',
                    \'post_status\'    => \'publish\',
                    \'post__not_in\'   => get_option( \'sticky_posts\' ), // do not display sticky posts
            );

            $query        = new WP_Query( $args );
            $recent_posts = $query->get_posts();
            $last         = sizeof( $recent_posts ) -1;
            $last_post    = $recent_posts[$last];
            $permlink     = get_permalink( $last_post->ID );
            $title        = $last_post->post_title;

            if ( ! empty( $permlink ) ) {
                $output .= sprintf( \'<li><a href="%s">%s</a></li>\', esc_attr( $permlink ), esc_html( $title ) );
            }

        } else {

            parent::start_el( $output, $category, $depth, $args, $id );

        }

    }
}
必须将类作为参数传递给wp_list_categories

$cat2post = new Childcat2LastPost();

$args = array(
    \'walker\' => $cat2post
);

echo \'<ol>\';
wp_list_categories( $args );
echo \'</ol>\';
注释掉该行\'post__not_in\' 如果您想包含粘性帖子。调整HTML,使其与$output .= sprintf( \'<li><a href="%s">%s</a></li>\', esc_attr( $permlink ), esc_html( $title ) ); (添加alt 和/或title 属性、类等)。

结束

相关推荐

Sort categories by meta value

如何制作一个类别列表,每个类别中有4篇最后的帖子,其中每个类别都按meta\\u值排序。例如,不按meta\\u值排序的模板是http://pastebin.com/AeH6vx9b它仅显示父类别。几天来,我在搜索与类别相关的额外字段,但找不到可行的内容。This is my best search result. 这跟我有什么关系?我不明白。有可能做我想做的事吗?