Any method to make specific widget for every post and page?

You should be able to do what you want with the Category Country Aware (CCA) Plugin. (it’s for use within post/page content but also includes the widget below).

Option 1: (only for posts and if you are happy to create one off categories):

  • Create new categories for say “Washington” and “NY” via WP Admin
    Dashboard -> posts -> categories.
  • In the post editor associate each post with the relevant new
    category.
  • Add an entry (text, HTML, JavaScript) with specific content for “NY”
    to the CCA widget, save then repeat for “Washington” etc (example below).

Category Country Widget

.
You can use multiple CCA widgets (“text” or “RSS”), so you could use a second widget to say display local news for that city.

Option 2: If you want it to work with pages, or don’t want give posts an extra unique category, want to use shortcodes, or would like to use the widget as a canvas for your own PHP then:

You can then add a custom field cca_category and value (e.g “Washington”) to your posts and pages. The CCA widget will check if the post has a matching “cca_category” before checking for a matching WordPress category. (Section 4 of above link provides details on how to do this).

Declaration of interest! : I’m the plugin author.