Wordpress类别列表链接到第一篇文章

时间:2013-05-11 19:11:39

标签: php wordpress categories

我使用此功能在wordpress中加载类别列表:

<?php wp_list_cats($args = array( 'current_category'   => 0, 'hide_empty'  => 1) );?>

有人能告诉我如何将类别链接链接到该类别的第一篇帖子吗?

即:

目前,A类链接到url ... / category / category-a

我希望A类链接到其第一个帖子,而不是所以url ... / category-a / first-post

我尝试使用以下方式处理分类标准模板:

<?php
/*
Redirect To First Child
*/
if (have_posts()) {
 while (have_posts()) {
   the_post();
   $pagekids = get_pages("child_of=".$post->ID."&sort_column=menu_order");
   $firstchild = $pagekids[0];
   wp_redirect(get_permalink($firstchild->ID));
 }
}
?>

我只需要一个更简洁的解决方案,我不需要修改实际的wordpress文件。

由于

1 个答案:

答案 0 :(得分:0)

我能想到的最好,$posts数组现在包含每个类别中第一篇帖子的链接。将此代码放在functions.php中:

function first_categories( $echo = false ) {
    $categories = get_categories();

    // array to hold links
    $posts = array();
    foreach ( $categories as $category ) {
        $post = get_posts( array( 'posts_per_page' => 1, 'post_type' => 'post', 'category' => $category->cat_ID ) );
        $posts[] = '<a href="'.get_permalink( $post[0]->ID ).'">'.$category->name.'</a>';
    }

    if ( $echo ) echo implode( '', $posts );
    else return $posts;
}

在模板文件中只显示链接使用:

<?php first_categories( true ) ?>

或者,如果要在HTML中包装链接,请使用以下内容:

<ul>
<?php foreach( first_categories() as $category ) : ?>
    <li><?php echo $category; ?></li>
<?php endforeach; ?>
</ul>

希望它有所帮助。