{"id":912,"date":"2025-10-11T12:48:23","date_gmt":"2025-10-11T12:48:23","guid":{"rendered":"https:\/\/tennisradar.gr\/blog\/?page_id=912"},"modified":"2026-07-27T13:09:54","modified_gmt":"2026-07-27T13:09:54","slug":"athens-all-tennis-courts","status":"publish","type":"page","link":"https:\/\/tennisradar.gr\/blog\/athens-all-tennis-courts\/","title":{"rendered":"\u038c\u03bb\u03b1 \u03c4\u03b1 \u03b3\u03ae\u03c0\u03b5\u03b4\u03b1 \u03c4\u03ad\u03bd\u03b9\u03c2(\u03b1\u03bd\u03c4\u03b9\u03c3\u03c6\u03b1\u03af\u03c1\u03b9\u03c3\u03b7\u03c2) \u03c4\u03b7\u03c2 \u0391\u03b8\u03ae\u03bd\u03b1\u03c2"},"content":{"rendered":"<form role=\"search\" method=\"get\" action=\"https:\/\/tennisradar.gr\/blog\/\" class=\"wp-block-search__button-outside wp-block-search__text-button aligncenter wp-block-search\"    ><label class=\"wp-block-search__label screen-reader-text\" for=\"wp-block-search__input-1\" >\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7<\/label><div class=\"wp-block-search__inside-wrapper\"  style=\"width: 50%\"><input class=\"wp-block-search__input\" id=\"wp-block-search__input-1\" placeholder=\"TK \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b2\u03c1\u03b5\u03af\u03c4\u03b5 \u03c4\u03b1 \u03ba\u03bf\u03bd\u03c4\u03b9\u03bd\u03ac \u03b3\u03ae\u03c0\u03b5\u03b4\u03b1 \u03c4\u03ad\u03bd\u03b9\u03c2\" value=\"\" type=\"search\" name=\"s\" required \/><button aria-label=\"\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\" class=\"wp-block-search__button wp-element-button\" type=\"submit\" >\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7<\/button><\/div><\/form>\r\n<p>&nbsp;<\/p>\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 20px;\" aria-hidden=\"true\">\u00a0<\/div>\r\n\r\n\r\n\r\n<p><style>\r\n.area-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\r\n  gap: 1rem;\r\n  max-width: 1000px;\r\n  margin: 1rem auto;\r\n}\r\n.area-link {\r\n  display: block;\r\n  background: #fff;\r\n  padding: 1rem 1.25rem;\r\n  text-align: center;\r\n  text-decoration: none;\r\n  font-weight: 700;\r\n  color: #0b3d91;\r\n  border-radius: 10px;\r\n  box-shadow: 0 6px 14px rgba(0,0,0,0.08);\r\n  transition: transform .18s, box-shadow .18s;\r\n}\r\n.area-link:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,0.12); }\r\n.container-center { max-width:1100px; margin:0 auto; padding:1rem; text-align:center; }\r\n.search-row { margin-bottom: 1.2rem; }\r\n<\/style><\/p>\r\n<div class=\"container-center\">\r\n<div id=\"areaGrid\" class=\"area-grid\">\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ce\u03bd\u2026<\/div>\r\n<\/div>\r\n<p><script>\r\n(async function(){\r\n  \/\/ Option A: fetch the JSON file you created with the Python script.\r\n  \/\/ Put the correct URL to postcode_to_area.json on your site:\r\n  const JSON_URL = \"\/blog\/wp-content\/uploads\/postcode_to_area.json\"; \/\/ <- adjust path\r\n\r\n  let mapping = {};\r\n  try {\r\n    const r = await fetch(JSON_URL);\r\n    if (!r.ok) throw new Error(\"Fetch failed\");\r\n    mapping = await r.json();\r\n  } catch (err) {\r\n    \/\/ Fallback: small inline example (you can replace by the full mapping manually)\r\n    mapping = {\r\n  \"10434\": \"\u03a4\u039a 10434 - (\u0391\u03b8\u03ae\u03bd\u03b1)\",\r\n  \"10441\": \"\u03a4\u039a 10441 - \u039a\u03bf\u03bb\u03c9\u03bd\u03cc\u03c2\",\r\n  \"10443\": \"\u03a4\u039a 10443 - Academy\",\r\n  \"10447\": \"\u03a4\u039a 10447 - \u0391\u03b8\u03b7\u03bd\u03ce\u03bd\",\r\n  \"10558\": \"\u03a4\u039a 10558 - \u0391\u03b8\u03b7\u03bd\u03ce\u03bd\",\r\n  \"10676\": \"\u03a4\u039a 10676 - \u0395\u03c5\u03b1\u03b3\u03b3\u03b5\u03bb\u03b9\u03c3\u03bc\u03cc\u03c2\",\r\n  \"11141\": \"\u03a4\u039a 11141 - (\u0391\u03b8\u03ae\u03bd\u03b1)\",\r\n  \"11475\": \"\u03a4\u039a 11475 - \u0393\u03ba\u03cd\u03b6\u03b7\",\r\n  \"11476\": \"\u03a4\u039a 11476 - \u0393\u03ba\u03cd\u03b6\u03b7\",\r\n  \"11525\": \"\u03a4\u039a 11525 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"11528\": \"\u03a4\u039a 11528 - \u039c\u03b9\u03c7\u03b1\u03bb\u03b1\u03ba\u03cc\u03c0\u03bf\u03c5\u03bb\u03bf\u03c5\",\r\n  \"11853\": \"\u03a4\u039a 11853 - \u039a\u03ac\u03c4\u03c9 \u03a0\u03b5\u03c4\u03c1\u03ac\u03bb\u03c9\u03bd\u03b1\",\r\n  \"11855\": \"\u03a4\u039a 11855 - \u0392\u03bf\u03c4\u03b1\u03bd\u03b9\u03ba\u03cc\u03c2\",\r\n  \"12043\": \"\u03a4\u039a 12043 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"12135\": \"\u03a4\u039a 12135 - \u03a0\u03b5\u03c1\u03b9\u03c3\u03c4\u03ad\u03c1\u03b9\",\r\n  \"12243\": \"\u03a4\u039a 12243 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"12351\": \"\u03a4\u039a 12351 - \u0392\u03b1\u03c1\u03b2\u03ac\u03c1\u03b1\u03c2\",\r\n  \"12461\": \"\u03a4\u039a 12461 - \u03a7\u03b1\u03ca\u03b4\u03ac\u03c1\u03b9\",\r\n  \"12462\": \"\u03a4\u039a 12462 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"13121\": \"\u03a4\u039a 13121 - \u039d.\u039b\u03b9\u03cc\u03c3\u03b9\u03b1-\u03a0\u03b1\u03bb\u03b1\u03b9\u03c4\u03b1\u03bd\u03ae\",\r\n  \"13232\": \"\u03a4\u039a 13232 - \u03a0\u03b5\u03c4\u03c1\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7\",\r\n  \"13561\": \"\u03a4\u039a 13561 - \u0391\u03b3.\u0391\u03bd\u03ac\u03c1\u03c5\u03b3\u03c1\u03bf\u03b9\",\r\n  \"13562\": \"\u03a4\u039a 13562 - \u0391\u03b3.\u0391\u03bd\u03ac\u03c1\u03c5\u03b3\u03c1\u03bf\u03b9\",\r\n  \"14231\": \"\u03a4\u039a 14231 - Tennis\",\r\n  \"14233\": \"\u03a4\u039a 14233 - \u039d\u03b5\u03ac\u03c0\u03bf\u03bb\u03b5\u03c9\u03c2\",\r\n  \"14262\": \"\u03a4\u039a 14262 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"14342\": \"\u03a4\u039a 14342 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"15001\": \"\u03a4\u039a 15001 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"15123\": \"\u03a4\u039a 15123 - \u039c\u03b1\u03c1\u03bf\u03cd\u03c3\u03b9-\u039d.\u03a6\u03b9\u03bb\u03bf\u03b8\u03ad\u03b7\",\r\n  \"15125\": \"\u03a4\u039a 15125 - \u039c\u03b1\u03c1\u03bf\u03cd\u03c3\u03b9-\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03c3\u03bf\u03c2\",\r\n  \"15126\": \"\u03a4\u039a 15126 - \u039c\u03b1\u03c1\u03bf\u03cd\u03c3\u03b9-\u039d.\u039b\u03ad\u03c3\u03b2\u03bf\u03c2\",\r\n  \"15127\": \"\u03a4\u039a 15127 - \u039c\u03b5\u03bb\u03af\u03c3\u03c3\u03b9\u03b1\",\r\n  \"15231\": \"\u03a4\u039a 15231 - \u03a7\u03b1\u03bb\u03ac\u03bd\u03b4\u03c1\u03b9-\u0391\u03b3.\u0392\u03b1\u03c1\u03b2\u03ac\u03c1\u03b1\",\r\n  \"15234\": \"\u03a4\u039a 15234 - \u03a7\u03b1\u03bb\u03ac\u03bd\u03b4\u03c1\u03b9\",\r\n  \"15236\": \"\u03a4\u039a 15236 - \u03a0\u03b5\u03bd\u03c4\u03ad\u03bb\u03b7-\u039d.\u03a0\u03b5\u03bd\u03c4\u03ad\u03bb\u03b7\",\r\n  \"15237\": \"\u03a4\u039a 15237 - \u03a6\u03b9\u03bb\u03bf\u03b8\u03ad\u03b7\",\r\n  \"15238\": \"\u03a4\u039a 15238 - \u03a7\u03b1\u03bb\u03ac\u03bd\u03b4\u03c1\u03b9\",\r\n  \"15341\": \"\u03a4\u039a 15341 - \u0391\u03b3.\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae\u03ae-\u039d.\u0396\u03c9\u03ae\",\r\n  \"15342\": \"\u03a4\u039a 15342 - \u0391\u03b3.\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae\u03ae-\u0391\u03b3\u03af\u03b1\u03bd\u03bd\u03b7\",\r\n  \"15343\": \"\u03a4\u039a 15343 - \u0391\u03b3.\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae\u03ae-\u03a0\u03b5\u03c5\u03ba\u03ac\u03ba\u03b9\",\r\n  \"15344\": \"\u03a4\u039a 15344 - \u0391\u03bd\u03b8\u03bf\u03cd\u03c3\u03b1\",\r\n  \"15349\": \"\u03a4\u039a 15349 - \u0391\u03bd\u03b8\u03bf\u03cd\u03c3\u03b1\",\r\n  \"15351\": \"\u03a4\u039a 15351 - \u03a0\u03b1\u03bb\u03bb\u03ae\u03bd\u03b7\",\r\n  \"15354\": \"\u03a4\u039a 15354 - \u039d\u03b5\u03c1\u03ac\",\r\n  \"15451\": \"\u03a4\u039a 15451 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"15452\": \"\u03a4\u039a 15452 - \u03a8\u03c5\u03c7\u03b9\u03ba\u03cc-\u0391\u03b3.\u0394\u03b7\u03bc\u03ae\u03c4\u03c1\u03b9\u03bf\u03c2\",\r\n  \"15562\": \"\u03a4\u039a 15562 - Courts\",\r\n  \"15669\": \"\u03a4\u039a 15669 - \u03a0\u03b1\u03c0\u03ac\u03b3\u03bf\u03c5\",\r\n  \"15771\": \"\u03a4\u039a 15771 - \u0399\u03bb\u03af\u03c3\u03b9\u03b1\",\r\n  \"15772\": \"\u03a4\u039a 15772 - \u0399\u03bb\u03af\u03c3\u03b9\u03b1\",\r\n  \"15773\": \"\u03a4\u039a 15773 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"15780\": \"\u03a4\u039a 15780 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"16122\": \"\u03a4\u039a 16122 - \u039a\u03b1\u03b9\u03c3\u03b1\u03c1\u03b9\u03b1\u03bd\u03ae-\u0391.\u039a\u03b1\u03b9\u03c3\u03ac\u03c1\u03b9\",\r\n  \"16232\": \"\u03a4\u039a 16232 - \u0392\u03cd\u03c1\u03c9\u03bd\u03b1\u03c2\",\r\n  \"16233\": \"\u03a4\u039a 16233 - \u03a0\u03b7\u03b3\u03ae\",\r\n  \"16341\": \"\u03a4\u039a 16341 - \u0397\u03bb\u03b9\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7-\u039a.\u0397\u03bb\u03b9\u03bf\u03cd\u03c0\u03bf\u03bb\",\r\n  \"16342\": \"\u03a4\u039a 16342 - \u0397\u03bb\u03b9\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7-\u0391\u03c3\u03c4\u03c5\u03bd\u03bf\u03bc\u03b9\u03ba\u03ac\",\r\n  \"16344\": \"\u03a4\u039a 16344 - \u0397\u03bb\u03b9\u03bf\u03cd\u03c0\",\r\n  \"16346\": \"\u03a4\u039a 16346 - \u0397\u03bb\u03b9\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7-\u039a.\u0397\u03bb\u03b9\u03bf\u03cd\u03c0\u03bf\u03bb\",\r\n  \"16451\": \"\u03a4\u039a 16451 - \u0391\u03c1\u03b3\u03c5\u03c1\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7\",\r\n  \"16452\": \"\u03a4\u039a 16452 - \u0391\u03c1\u03b3\u03c5\u03c1\u03bf\u03cd\u03c0\u03bf\u03bb\u03b7\",\r\n  \"16671\": \"\u03a4\u039a 16671 - \u0392\u03bf\u03c5\u03bb\u03b9\u03b1\u03b3.-\u039c.\u039a\u03b1\u03b2\u03bf\u03cd\u03c1\u03b9\",\r\n  \"16672\": \"\u03a4\u039a 16672 - \u0392\u03ac\u03c1\u03b7\",\r\n  \"16673\": \"\u03a4\u039a 16673 - \u0392\u03bf\u03cd\u03bb\u03b1\",\r\n  \"16674\": \"\u03a4\u039a 16674 - \u0393\u03bb\u03c5\u03c6\u03ac\u03b4\u03b1\",\r\n  \"16675\": \"\u03a4\u039a 16675 - \u0393\u03bb\u03c5\u03c6\u03ac\u03b4\u03b1\",\r\n  \"16701\": \"\u03a4\u039a 16701 - \u0391\u03b8\u03ae\u03bd\u03b1\",\r\n  \"16777\": \"\u03a4\u039a 16777 - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03cc-\u0391\u03b3.\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae\",\r\n  \"17122\": \"\u03a4\u039a 17122 - \u039d.\u03a3\u03bc\u03cd\u03c1\u03bd\u03b7\",\r\n  \"17124\": \"\u03a4\u039a 17124 - \u039d.\u03a3\u03bc\u03cd\u03c1\u03bd\",\r\n  \"17341\": \"\u03a4\u039a 17341 - \u0391\u03b3.\u0394\u03b7\u03bc\u03ae\u03c4\u03c1\u03b9\u03bf\u03c2\",\r\n  \"17455\": \"\u03a4\u039a 17455 - \u0386\u03bb\u03b9\u03bc\u03bf\u03c2-\u039a\u03b1\u03bb\u03b1\u03bc\u03ac\u03ba\u03b9\",\r\n  \"17456\": \"\u03a4\u039a 17456 - \u0386\u03bb\u03b9\u03bc\u03bf\u03c2-\u0395\u03ba\u03c4\u03b5\u03bb\u03c9\u03bd\u03b9\u03c3\u03c4\u03ce\u03bd\",\r\n  \"17561\": \"\u03a4\u039a 17561 - \u03a0.\u03a6\u03ac\u03bb\u03b7\u03c1\u03bf\",\r\n  \"17562\": \"\u03a4\u039a 17562 - \u03a0.\u03a6\u03ac\u03bb\u03b7\u03c1\u03bf\",\r\n  \"17676\": \"\u03a4\u039a 17676 - \u039a\u03b1\u03bb\u03bb\u03b9\u03b8\u03ad\u03b1-\u03a0\u03bb.\u039a\u03b1\u03bb\u03bb\u03b9\u03b8\u03ad\u03b1\",\r\n  \"17778\": \"\u03a4\u039a 17778 - \u03a4\u03b1\u03cd\u03c1\u03bf\u03c2\",\r\n  \"18233\": \"\u03a4\u039a 18233 - \u0391\u03b3.\u0399.\u03a1\u03ad\u03bd\u03c4\u03b7\u03c2\",\r\n  \"18344\": \"\u03a4\u039a 18344 - \u039c\u03bf\u03c3\u03c7\u03ac\u03c4\u03bf\u03c5\",\r\n  \"18454\": \"\u03a4\u039a 18454 - \u03a7\u03ce\u03bc\u03b1\u03c4\u03b1\",\r\n  \"18533\": \"\u03a4\u039a 18533 - \u03a0\u03b5\u03b9\u03c1\u03b1\u03b9\u03ac\u03c2-\u039a\u03b1\u03c3\u03c4\u03ad\u03bb\u03bb\u03b1\",\r\n  \"18534\": \"\u03a4\u039a 18534 - \u03a0\u03b5\u03b9\u03c1\u03b1\u03b9\u03ac\u03c2-\u03a0\u03bb.\u0391\u03bb\u03b5\u03be\u03b1\u03bd\u03b4\u03c1\",\r\n  \"18537\": \"\u03a4\u039a 18537 - \u03a0\u03b5\u03b9\u03c1\u03b1\u03b9\u03ac\u03c2-\u0391\u03b3.\u039d\u03b9\u03ba\u03cc\u03bb\u03b1\u03bf\u03c2\",\r\n  \"18538\": \"\u03a4\u039a 18538 - \u03a0\u03b5\u03b9\u03c1\u03b1\u03b9\u03ac\u03c2-\u03a7\u03b1\u03c4\u03b6\u03b7\u03ba\u03c5\u03c1\u03b9\u03b1\u03ba\u03bf\u03cd\",\r\n  \"18541\": \"\u03a4\u039a 18541 - \u0391\u03c0\u03cc\u03bb\u03bb\u03c9\u03bd\u03bf\u03c2\",\r\n  \"18758\": \"\u03a4\u039a 18758 - \u039a\u03b5\u03c1\u03b1\u03c4\u03c3\u03b9\u03bd\u03af\u03bf\u03c5\",\r\n  \"19002\": \"\u03a4\u039a 19002 - \u03a0\u03b1\u03b9\u03b1\u03bd\u03af\u03b1\",\r\n  \"19400\": \"\u03a4\u039a 19400 - \u039a\u03bf\u03c1\u03c9\u03c0\u03af-\u039a\u03b1\u03c1\u03ad\u03bb\u03bb\u03b1\u03c2\"\r\n};\r\n    console.warn(\"Could not load postcode_to_area.json:\", err);\r\n  }\r\n\r\n  const container = document.getElementById(\"areaGrid\");\r\n  container.innerHTML = \"\";\r\n\r\n  \/\/ Build links sorted by numeric postcode\r\n  const keys = Object.keys(mapping).sort((a,b)=>parseInt(a,10)-parseInt(b,10));\r\n  for (const pc of keys) {\r\n    const title = mapping[pc];\r\n    \/\/ URL: category page path used in your site (adjust if needed)\r\n    const href = `\/blog\/category\/tennis-courts-athens\/tk-${pc}\/`;\r\n    const a = document.createElement(\"a\");\r\n    a.href = href;\r\n    a.className = \"area-link\";\r\n    a.textContent = title;\r\n    container.appendChild(a);\r\n  }\r\n\r\n  \/\/ search: jump to category if exact postcode typed\r\n  document.getElementById(\"btnSearch\").addEventListener(\"click\", ()=>{\r\n    const v = document.getElementById(\"postcodeSearch\").value.replace(\/\\s+\/g,'');\r\n    if (!v) return;\r\n    if (mapping[v]) {\r\n      window.location.href = `\/blog\/category\/tennis-courts-athens\/tk-${v}\/`;\r\n    } else {\r\n      alert(\"\u0394\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5 \u03a4\u039a: \" + v);\r\n    }\r\n  });\r\n})();\r\n<\/script><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; \u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ce\u03bd\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-912","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/pages\/912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/comments?post=912"}],"version-history":[{"count":15,"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/pages\/912\/revisions"}],"predecessor-version":[{"id":4349,"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/pages\/912\/revisions\/4349"}],"wp:attachment":[{"href":"https:\/\/tennisradar.gr\/blog\/wp-json\/wp\/v2\/media?parent=912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}