[英]WordPress: Trying to get specific category url using “get_categories()”
[英]Wordpress order get_categories() list with category that has had the latest post on top
我想知道是否有人会帮助我。
我需要能够显示子类别,然后显示该子类别中的帖子。 我受到限制,因此只能显示2个子类别,每个显示仅2个帖子。
我需要做的是对类别进行排序,以使添加了最新帖子的类别位于顶部。 ee,如果将其他帖子添加到子类别B,则该列表将显示在子类别A上方。
这是我目前的代码
$catid = 2;
$subcats = get_categories('child_of=' . $catid.'&number=2');
foreach($subcats as $subcat) {
echo '<li>' . $subcat->cat_name . '</li>';
echo '<ul>';
$subcat_posts = get_posts('cat=' . $subcat->cat_ID.'&posts_per_page=2');
foreach($subcat_posts as $subcat_post) {
$postID = $subcat_post->ID;
echo '<li>';
echo '<a href="' . get_permalink($postID) . '">';
echo get_the_title($postID);
echo '</a></li>';
}
echo '</ul>';
}?>
任何想法将不胜感激。
中号
将以下排序功能添加到您的functions.php中:
function sort_categories_by_post_date($a, $b) {
$a_posts = get_posts('cat=' . $a->term_id);
$b_posts = get_posts('cat=' . $b->term_id);
if (!$a_posts) {
$a_cmp = 0;
} else {
$a_cmp = strtotime($a_posts[0]->post_date);
}
if(!$b_posts) {
$b_cmp = 0;
} else {
$b_cmp = strtotime($b_posts[0]->post_date);
}
return strcmp($b_cmp, $a_cmp);
}
为了使用该功能,请在以下行旁边:
$subcats = get_categories('child_of=' . $catid.'&number=2');
添加以下行:
usort($subcats, 'sort_categories_by_post_date');
请注意,这只会对2个拉动类别进行排序。 因此,您可能希望提取所有帖子类别(这意味着删除&number=2
),对它们进行排序,然后使用以下代码获取其中的前两个:
$subcats = array_slice($subcats, 0, 2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.