loop inside the foreach

Finally, I figure it out.

It seems that the get_posts and query_posts accept different arguments, when I use the get_posts I can setup the arguments like this:

                    get_posts(array(
                        "category" => $cate->term_id,
                        "numberposts" => 12
                    ));

While when I use query_posts I have change that to:

                    query_posts(array(
                        "cat" => $cate->term_id,
                        "numberposts" => 12
                    ));

Notice the category to cat. This is a sad story.:(