WP_Query doesn't call get_posts()

`WP_Query` doesn't call `get_posts()`, it's the other way round. `get_posts()` creates a new `WP_Query` object and indeed defaults `suppress_filters` to `true`. There's a gotcha too. If you need a list of posts in a widget, `WP_Query` will prepend sticky posts by default, which may or may not be intended behavior, while `get_posts()` defaults to `ignore_sticky_posts`.