我使用此功能在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文件。
由于
答案 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>
希望它有所帮助。