[`post_parent`][1] returns **only** the child pages of the page whose ID is given as the value. >**post_parent** (int) - use page id to return only child pages. Set to 0 to return only top-level entries To get just a specific page, rather use `page_id` or `pagename` or `post__in` (in conjunction with `post_type=page`. I would suggest that you rather make use of [`get_pages`][2] which is specifically there to query pages. Just a note here, `wp_reset_query()` is used in conjunction with `query_posts`. You should use `wp_reset_postdata()` with `WP_Query` -- Here the solution from the comments below: Polylang creates a new custom parameter "lang". This parameter appears to default to "", which is supposed to return posts with [any][3] value. Instead it returns posts with the current page's language value only (hence only children of current page ID = 5). As a fix I now manually loop through the available values for "lang" to get pages with all values for "lang". I'll check with the plugin author if this is a bug or caused by my environment. [1]: http://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters [2]: http://codex.wordpress.org/Function_Reference/get_pages [3]: http://polylang.wordpress.com/documentation/documentation-for-developers/general/ "any"