I would create a page in the admin panel called service areas and create a rewrite rule that tells wp to load a corresponding page-service-areas.php template.
function add_rewrite_rules () {
add_rewrite_rule( '^service_areas/?$', 'index.php?pagename=service-areas', 'top' );
}
add_action('init', 'add_rewrite_rules');
Then in page-service-areas.php build out the query you want.
The following link helps you visualize how wordpress determines what page template to load:
https://developer.wordpress.org/themes/basics/template-hierarchy/
UPDATE:
- Add the above function (to themes
functions.php
or
elsewhere). - Flush rewrite rules by saving “settings ->
permalinks” - In the admin panel, create a blank page called
“Service Areas”. - Create a file in the theme with the content
you want to load. (copy of page.php, archive.php or some other loop
or content).
Now you should be able to click on the link for the page you created in admin (yoursite.com/service-areas
) OR—thanks to our rewrite rule—(yoursite.com/service_areas
) and see your template page.