Reputation: 1307
I have created the function below which is intended to list the sub categories of the parent with the id of 3.
The function should also return meta data from the first post in each sub category.
This works (kinda) but instead of just getting one set of data, it returns 3 sets with different outcomes.
Any ideas why?
global $cat;
global $post;
$categories = get_categories('child_of=3');
foreach ($categories as $cat) :
$postslist = get_posts($cat->cat_ID, 'numberposts=1&order=DESC');
foreach ($postslist as $post) :
$option = '<li id="'.get_post_meta($post->ID, 'id', true).'">';
$option .='<a class="preview" rel="'.get_post_meta($post->ID, 'thumbnail', true).'" ';
$option .='href="'.get_bloginfo('url').'/'.$post->post_name.'">';
$option .=$cat->cat_name;
$option .='</a>';
$option .='</li>';
echo $option;
endforeach;
endforeach;
Upvotes: 0
Views: 2026
Reputation: 3464
If you look at the docs at wordpress.org for get_posts() you will see that the function only has one argument.
get_posts('numberposts=1&category='. $cat->cat_ID .'&order=DESC');
Upvotes: 1
Reputation: 1307
I have figured out where i was going wrong! This:
$postslist = get_posts($cat->cat_ID, 'numberposts=1&order=DESC');
Has been replaced with:
$postslist = get_posts('category='.$cat->cat_ID.'numberposts=1&order=DESC');
This gives the actual category id.
Upvotes: 0