Immer wieder passiert es mir, dass ich bei Benutzung von get_posts() ein leeres Array zurückbekomme. Die Lösung ist einfach.
Man muss den Post Status setzen, auf ‚draft‘, ‚publish‘ oder einfach ‚any‘ um die posts mit jedem Post Status zurückzubekommen.
$posts = get_posts(array( 'post_type' => 'post', 'post_status' => 'any' ));