However, you could assign all the relevant posts to categories rather than using post type (e.g., category ‘bars’ and ‘hotels’), then query by all the necessary categories (you can separate categories by commas).

Or, group them under a specific separate taxonomy just for the purpose of combining them, such as a ‘map1’ tag.

I just tested this and the query seems to work for me. But I think I see the problem: the various WordPress query selectors work either on names (slugs) or IDs. If the wrong type of argument is provided, WordPress will ignore that part of the query and show all results.

In the example above, ‘category__in’ uses IDs, so it would need to be something like ‘category__in=1,5,7’. For names, use ‘category_name’ instead, e.g. ‘category_name=red,blue,green’.

There are some examples of the various selectors in the docs, or the WordPress codex page.

Be careful to also match the underscores – some selectors use two and some use one.

I looked at the site and I think the problem is the quotes in the shortcode. It contained angled quotes, which are normally used by visual editors. WordPress ignores this type of quote when processing shortcode arguments.

What you need are straight quotes, which is what are input using the normal WordPress editor (you can check by using the ‘text’ tab instead of ‘visual’):