One option could be to have some kind of lookup table, either hard coded or as a settings page, where you map role (user group) to category (city). Then use the current user object to get city based role and use it as a key to get a category ID from the lookup table, which you use in your post query.
Pseudo-code example,
// Current user data
$current_user = wp_get_current_user();
// Get city role
$city_based_role = some_function_to_get_city_role_from_roles($current_user->roles);
// Get category id
$city_category = some_function_to_get_category_id_from_role_to_category_lookup_table($city_based_role);
// Query posts for category
$args = array(
// some args
'cat' => $city_category,
);
$query = new WP_Query($args);
Related Posts:
- How can I hide a category from Contributors in the edit/add new post screen?
- Assigning a category to a user role
- How can I prevent users from creating new categories?
- Allow contributors to add categories, but not delete
- WordPress/Woocommerce only show category in shop to a single role
- Admin comments and user restrictions
- Display posts of certain categories to specific user roles
- How to restrict category creation to admins only while allowing editors to still pick category
- Allow Custom Role to edit a custom post type category
- How can I restrict the categories users can post in, based on user roles?
- how to Specifies an author / editor to edit one category only?
- Assign a category by user and customize the edit-tags.php?taxonomy=category page
- Hide categories from authors
- Can I set a default featured image for a category?
- Hook when category is added to post
- get_categories for custom post type with a specific custom taxonomy attached
- What’s the URL for a category archive?
- Weird behaviour when adding terms/term_taxonomies programmatically
- Exclude categories from Loop, queries, widgets, post navigation
- how to use a different domain/subdomain for authors/catagories on single site?
- WordPress 1 domain multiple blogs
- Category count inside the link
- Is there a way to have duplicate category slugs?
- Multiple level category drop-down
- One WordPress Install, Two Categories. Each Category Gets a Domain
- Name of last category level for a post
- How to add style to category link?
- WordPress Ordering Problem. How to fix ordering 1-10-100 issue?
- how to show posts of category random by session
- Remove “Parent” Selection When Adding/Editing Categories?
- Filtering search results
- WooCommerce change category url and product base
- How can we get Catergory / Term Creator
- Seperate WordPress catagories into sepeat list on seperate pages
- Redirect category to first available child post
- Show post only if match all categories
- How to get product count with respect to categories in WooComerce
- Password protect a specific category page/post
- Display WordPress Parent Categories Only?
- Filter Home Page Posts in Buddypress [closed]
- Additional featured post on first page
- Assign automatically and manually modify category
- Displaying a full post instead of a slug per category?
- previous/next_post_link in the same sub-category?
- How do I toggle pagination on/off in search results and category listings via a link?
- get_categories() returns “Uncategorised”
- How to show WordPress parent and child category using a different template?
- How can I get categories IDs if multiple categories requested via URI?
- List categories with custom code
- Page display certain Category Posts
- WordPress for Podcast Network
- Categories widget show empty?
- Exclude a category from a query that includes its parent category
- Count the posts number for every category
- Add image to each podcast series (or category) in headless WordPress instance [closed]
- Trying to get variables in hacked category dropdown
- Change of category structure will cause two kinds of URLs for one post
- Portfolio Filter Buttons Wont Work
- Insert HTML content in WP Query at specific point
- set terms to category and subcategory
- Woocommerce filter function not updating
- Get Meta Keys of Custom Categories
- Change slug of Standard wp Post category
- Get posts of a custom post type from category from taxonomy?
- How can I ask to an existing category?
- Hide a category of posts from main blog, and only show in category view
- ACF no print data [closed]
- Change categories count to include media attachments
- Get the name of category in query
- Archive filtering
- How can I check which archive has referred the single? [closed]
- Split multiple categories into two columns
- WooCommerce shared categories
- Add custom categories and subcategories and posts as custom pages
- pagination 404 error, same slug home and categories
- WordPress 5.4 and higher: Filter posts by category 1 AND category 2 in API requests
- How can I order all subcategories alphabetical independent of the parent categories?
- Add Catgory (assign) to Post Programmatically (without editing)
- Wrong category in URLs accepted like the correct one
- WooCommerce showing active product categories on single product page
- how to exclude specific category types (uncategorized) from blog page?
- Confused about category.php template – not working
- Style a category page the same way as the homepage?
- Conditional statement: if is_category, append at the end of page
- How to Manage and link certain custom taxonomy?
- Store All Post Categories In Array
- How to add an “All” category to the tag cloud?
- Display Taxonomies in loop with template args
- How to create an array with category ids order by the one that has the most recent post
- How to assign image on specified category and not show the image on other categories
- Categories Going to different Blog Pages?
- Display only the latest post
- How to structure Multisite sites into categories?
- Change next_post and previous_link to navigate throught parent categories only
- Template files not working for archives and categories
- Multiple Parent Category URLs
- What defines a post as portfolio page content?
- How to add location as category?
- Converting Categories (with ACF fields) to custom taxonomies
- Taxonomy term RestApi data 10 rows limitions