WordPress has a very simple and strict data model: posts and taxonomies. Posts (and their post types) are for content and taxonomies (hierarchical or not) are for grouping or relating those contents.
To get an approach the WordPress way, you might switch your post type into a custom taxonomy Attorney
to group your custom post type PracticeArea
.
Here is a simple mock up code for e.g. your functions.php
to get you started:
add_action('init', 'register_post_types_and_taxonomies');
function register_post_types_and_taxonomies() {
register_post_type('practice-area', array(
// Your CPT args
));
register_taxonomy('attorney', array('practice-area'), array(
'hierarchical'=> true, // Behave like categories (checkboxes)
// Your CT args
));
}
With this, you get your checkboxes. You will get it the other way around (you will have to check the attorney on the practice area) but you can easily display stuff in the front-end.
If you create a taxonomy-attorney.php
and use the description field as post_content
sustitution, you get all related practice areas in your main query.