I found the following solution, even thoug I am not exactly sure what is happening here:
function loadPageFirst(){// get the actual category
$actualCategory = get_category( get_query_var('cat'));
// get the page with the same slug
$matchingPage = get_page_by_path( $actualCategory->slug );
// If no match, load the normal listing template and exit (edit if you are using a custom listing template, eg. category.php)
if(!$matchingPage){
include( get_template_directory().'/archive.php');
die();
}
// Make a new query with the page's ID and load the page template
query_posts('page_id='. $matchingPage->ID );
include( get_template_directory().'/page.php');
die();
}add_filter('category_template','loadPageFirst');
Are there any remarks on this solution?