DanC
DanC

Reputation: 1307

wordpress get_categories() issue

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

Answers (2)

slosd
slosd

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

DanC
DanC

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

Related Questions