{"id":398,"date":"2026-06-01T04:40:33","date_gmt":"2026-06-01T04:40:33","guid":{"rendered":"https:\/\/tourninhbinh.vn\/?page_id=398"},"modified":"2026-06-03T01:43:02","modified_gmt":"2026-06-03T01:43:02","slug":"ai-search","status":"publish","type":"page","link":"https:\/\/tourninhbinh.vn\/vi\/ai-search\/","title":{"rendered":"T\u00ecm Tour Ninh B\u00ecnh"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap');\n.ais{font-family:'Inter',sans-serif;max-width:940px;margin:0 auto;padding:40px 24px 60px}\n.ais h1{font-size:30px;font-weight:800;text-align:center;margin-bottom:6px;color:#1a1a1a}\n.ais-sub{text-align:center;color:#777;font-size:15px;margin-bottom:28px}\n.ais-box{background:#fff;border-radius:999px;box-shadow:0 8px 36px rgba(0,0,0,0.13);padding:8px 8px 8px 22px;display:flex;align-items:center;gap:8px;margin-bottom:14px}\n.ais-box input{flex:1;border:none;outline:none;font-size:16px;font-family:'Inter',sans-serif;color:#1a1a1a;background:transparent}\n.ais-box input::placeholder{color:#bbb}\n.ais-btn{background:#00aa6c;color:#fff;border:none;border-radius:999px;padding:13px 30px;font-size:15px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;transition:background .2s;white-space:nowrap}\n.ais-btn:hover{background:#009660}\n.ais-btn:disabled{background:#ccc;cursor:not-allowed}\n.ais-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:28px}\n.chip{background:#f0f0ea;border:none;border-radius:999px;padding:7px 15px;font-size:13px;color:#555;cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s}\n.chip:hover{background:#e0f5ed;color:#00aa6c}\n.ais-spin{text-align:center;padding:32px;display:none}\n.ais-spin span{display:inline-block;width:9px;height:9px;border-radius:50%;background:#00aa6c;margin:0 3px;animation:sp 1.1s ease-in-out infinite}\n.ais-spin span:nth-child(2){animation-delay:.15s}\n.ais-spin span:nth-child(3){animation-delay:.3s}\n@keyframes sp{0%,80%,100%{transform:scale(0.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}\n.ais-note{background:#f0faf6;border-left:3px solid #00aa6c;padding:10px 16px;border-radius:0 8px 8px 0;font-size:13px;color:#333;margin-bottom:20px;display:none;line-height:1.5}\n.ais-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}\n.tc{background:#fff;border-radius:16px;border:1px solid #ebebeb;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:box-shadow .25s,transform .25s}\n.tc:hover{box-shadow:0 10px 30px rgba(0,0,0,0.12);transform:translateY(-3px)}\n.tc-img{height:165px;position:relative;overflow:hidden;background:#e8e8e0}\n.tc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}\n.tc:hover .tc-img img{transform:scale(1.05)}\n.tc-badge{position:absolute;top:10px;left:10px;background:#00aa6c;color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:6px}\n.tc-badge.hot{background:#e8321c}\n.tc-body{padding:14px 15px;flex:1;display:flex;flex-direction:column}\n.tc-title{font-size:14px;font-weight:700;color:#1a1a1a;line-height:1.4;margin-bottom:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}\n.tc-why{font-size:11.5px;color:#00aa6c;font-style:italic;margin-bottom:7px;line-height:1.4}\n.tc-meta{display:flex;gap:8px;font-size:11px;color:#999;margin-bottom:8px}\n.tc-price{font-size:17px;font-weight:800;color:#1a1a1a;margin-top:auto}\n.tc-price s{font-size:12px;color:#ccc;font-weight:400;margin-right:3px}\n.tc-cta{background:#1a1a1a;color:#fff;border:none;border-radius:8px;padding:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;width:100%;margin-top:10px}\n.ais-empty{text-align:center;color:#aaa;padding:40px;display:none}\n@media(max-width:700px){.ais-grid{grid-template-columns:1fr 1fr}}\n@media(max-width:440px){.ais-grid{grid-template-columns:1fr}}\n<\/style>\n\n<div class=\"ais\">\n  <h1>T\u00ecm tour Ninh B\u00ecnh ph\u00f9 h\u1ee3p nh\u1ea5t \u2014 trong 10 gi\u00e2y<\/h1>\n  <p class=\"ais-sub\">G\u00f5 \u0111\u1ecba danh, ng\u00e2n s\u00e1ch ho\u1eb7c lo\u1ea1i h\u00ecnh \u2014 AI g\u1ee3i \u00fd ngay tour ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n<\/p>\n  <div class=\"ais-box\">\n    <svg width=\"19\" height=\"19\" fill=\"none\" stroke=\"#bbb\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-4.35-4.35M17 11A6 6 0 1 1 5 11a6 6 0 0 1 12 0z\"\/><\/svg>\n    <input id=\"qi\" type=\"text\" placeholder=\"Tr\u00e0ng An thuy\u1ec1n, show \u0111\u00eam Hoa L\u01b0, gia \u0111\u00ecnh 4 ng\u01b0\u1eddi, d\u01b0\u1edbi 500k...\">\n    <button class=\"ais-btn\" id=\"qbtn\" onclick=\"go()\">T\u00ecm tour ph\u00f9 h\u1ee3p<\/button>\n  <\/div>\n  <div class=\"ais-chips\">\n    <button class=\"chip\" onclick=\"qs('\u0111i thuy\u1ec1n Tr\u00e0ng An UNESCO')\">\ud83d\udea3 Tr\u00e0ng An thuy\u1ec1n<\/button>\n    <button class=\"chip\" onclick=\"qs('combo Tr\u00e0ng An v\u00e0 show \u0111\u00eam Anh H\u00f9ng C\u1edd Lau 399k')\">\ud83d\udd25 Combo 399K<\/button>\n    <button class=\"chip\" onclick=\"qs('show \u0111\u00eam ph\u1ed1 c\u1ed5 Hoa L\u01b0')\">\ud83c\udf19 Show \u0111\u00eam Hoa L\u01b0<\/button>\n    <button class=\"chip\" onclick=\"qs('t\u1eeb H\u00e0 N\u1ed9i 1 ng\u00e0y Ninh B\u00ecnh')\">\ud83c\udfd9\ufe0f T\u1eeb H\u00e0 N\u1ed9i 1 ng\u00e0y<\/button>\n    <button class=\"chip\" onclick=\"qs('tour gia \u0111\u00ecnh c\u00f3 tr\u1ebb em')\">\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67 Gia \u0111\u00ecnh &#038; tr\u1ebb em<\/button>\n    <button class=\"chip\" onclick=\"qs('tour ri\u00eang cao c\u1ea5p VIP')\">\ud83d\ude97 Tour ri\u00eang VIP<\/button>\n    <button class=\"chip\" onclick=\"qs('tour Ninh B\u00ecnh d\u01b0\u1edbi 500k')\">\ud83d\udcb0 D\u01b0\u1edbi 500k<\/button>\n    <button class=\"chip\" onclick=\"qs('tour 2 ng\u00e0y 1 \u0111\u00eam Ninh B\u00ecnh')\">\ud83c\udf05 2 ng\u00e0y 1 \u0111\u00eam<\/button>\n  <\/div>\n  <div class=\"ais-spin\" id=\"spin\"><span><\/span><span><\/span><span><\/span><p style=\"margin-top:10px;color:#888;font-size:14px\">AI \u0111ang t\u00ecm tour ph\u00f9 h\u1ee3p nh\u1ea5t&#8230;<\/p><\/div>\n  <div class=\"ais-note\" id=\"note\"><\/div>\n  <div class=\"ais-grid\" id=\"grid\"><\/div>\n  <div class=\"ais-empty\" id=\"empty\">Ch\u01b0a t\u00ecm th\u1ea5y tour ph\u00f9 h\u1ee3p. Th\u1eed t\u1eeb kho\u00e1 kh\u00e1c ho\u1eb7c m\u00f4 t\u1ea3 chi ti\u1ebft h\u01a1n nh\u00e9! \ud83d\ude0a<\/div>\n<\/div>\n\n<script>\nvar T=[\n  {id:1,title:\"Hoa Lu, B\u00e1i \u0110\u00ednh, Tr\u00e0ng An & Hang M\u00faa Tour\",p:1276000,op:1450000,dur:\"1 ng\u00e0y\",loc:\"Hoa L\u01b0 \u00b7 Tr\u00e0ng An\",r:4.7,rv:1797,badge:\"\",img:\"https:\/\/disantrangan.vn\/images\/slider3.jpg\",url:\"\/en\/tour\/from-ninh-binh-hoa-lu-bai-dinh-trang-an-mua-cave-tour\/\",tags:[\"tr\u00e0ng an\",\"hoa lu\",\"b\u00e1i \u0111\u00ednh\",\"hang m\u00faa\",\"ng\u00e0y\",\"gia \u0111\u00ecnh\",\"combo\"]},\n  {id:2,title:\"Tr\u00e0ng An Boat, B\u00e1i \u0110\u00ednh, Hoa Lu & Sunset Hang M\u00faa\",p:1180000,op:0,dur:\"8 gi\u1edd\",loc:\"Tr\u00e0ng An \u00b7 Hang M\u00faa\",r:4.6,rv:683,badge:\"\",img:\"https:\/\/disantrangan.vn\/images\/slider2.jpg\",url:\"\/en\/tour\/ninh-binh-trang-an-boat-bai-dinh-hoa-lu-mua-cave-sunset\/\",tags:[\"tr\u00e0ng an\",\"hang m\u00faa\",\"ho\u00e0ng h\u00f4n\",\"ng\u00e0y\",\"thuy\u1ec1n\"]},\n  {id:3,title:\"Ph\u1ed1 C\u1ed5 Hoa L\u01b0 \u2013 \u0102n T\u1ed1i & Show Anh H\u00f9ng C\u1edd Lau\",p:750000,op:900000,dur:\"4.5 gi\u1edd\",loc:\"Hoa L\u01b0 \u00b7 Ph\u1ed1 C\u1ed5\",r:5.0,rv:12,badge:\"\",img:\"https:\/\/assets.zyrosite.com\/cdn-cgi\/image\/format=auto,w=1920,fit=crop\/dWxe6v3Xk4hMNNnR\/dsc07607-enhanced-nr-AR02l3Bwa7sjv33q.png\",url:\"\/en\/tour\/ninh-binh-night-experience-hoa-lu-ancient-town-dinner-hero-of-the-reed-flag-show\/\",tags:[\"show\",\"\u0111\u00eam\",\"hoa l\u01b0\",\"\u0103n t\u1ed1i\",\"xe\",\"combo\",\"c\u1edd lau\"]},\n  {id:4,title:\"V\u00e9 Show Anh H\u00f9ng C\u1edd Lau \u2013 V\u00e9 V\u00e0o C\u1eeda\",p:250000,op:0,dur:\"60 ph\u00fat\",loc:\"Hoa L\u01b0\",r:5.0,rv:8,badge:\"\",img:\"https:\/\/assets.zyrosite.com\/dWxe6v3Xk4hMNNnR\/z4701147528872_11fe258702d4eb7c9cf65685cf9fa178-AoPZKl6J9aS8lNDq.jpg\",url:\"\/en\/tour\/dinh-bo-linh-night-show-hero-of-the-reed-flag-ticket\/\",tags:[\"show\",\"v\u00e9\",\"c\u1edd lau\",\"\u0111\u00eam\",\"gi\u00e1 r\u1ebb\",\"d\u01b0\u1edbi 500k\"]},\n  {id:5,title:\"Tour Ri\u00eang Tr\u1ecdn Ng\u00e0y \u2013 Di S\u1ea3n Ninh B\u00ecnh Cao C\u1ea5p\",p:2500000,op:0,dur:\"10 gi\u1edd\",loc:\"To\u00e0n Ninh B\u00ecnh\",r:4.9,rv:124,badge:\"\",img:\"https:\/\/disantrangan.vn\/images\/slider4.jpg\",url:\"\/en\/tour\/private-full-day-ninh-binh-tour-with-heritage-experience\/\",tags:[\"ri\u00eang\",\"vip\",\"cao c\u1ea5p\",\"gia \u0111\u00ecnh\",\"private\"]},\n  {id:6,title:\"Combo Tr\u00e0ng An + Show Anh H\u00f9ng C\u1edd Lau \u2013 Ch\u1ec9 399K\",p:399000,op:550000,dur:\"C\u1ea3 ng\u00e0y + t\u1ed1i\",loc:\"Tr\u00e0ng An \u00b7 Hoa L\u01b0\",r:5.0,rv:0,badge:\"hot\",img:\"https:\/\/tourninhbinh.vn\/wp-content\/uploads\/2026\/06\/Anh-Hung-Co-Lau-\u2013-The-First-Empire-of-Vietnam-16-scaled.jpg\",url:\"\/en\/tour\/combo-trang-an-show-anh-hung-co-lau-ninh-binh\/\",tags:[\"combo\",\"tr\u00e0ng an\",\"show\",\"c\u1edd lau\",\"399k\",\"d\u01b0\u1edbi 500k\",\"ng\u00e0y \u0111\u00eam\",\"gia \u0111\u00ecnh\",\"ti\u1ebft ki\u1ec7m\",\"hot deal\",\"unesco\"]}\n];\n\nfunction qs(q){document.getElementById('qi').value=q;go();}\n\nasync function go(){\n  var q=document.getElementById('qi').value.trim();\n  if(!q)return;\n  var btn=document.getElementById('qbtn');\n  var spin=document.getElementById('spin');\n  var grid=document.getElementById('grid');\n  var note=document.getElementById('note');\n  var empty=document.getElementById('empty');\n  btn.disabled=true;spin.style.display='block';grid.innerHTML='';note.style.display='none';empty.style.display='none';\n  try{\n    var fd=new FormData();\n    fd.append('action','tnb_ais2');\n    fd.append('query',q);\n    var res=await fetch('\/wp-admin\/admin-ajax.php',{method:'POST',body:fd});\n    var d=await res.json();\n    spin.style.display='none';\n    if(!d.success){\n      note.innerHTML='\ud83e\udd16 <strong>AI:<\/strong> '+(d.data&&d.data.message?d.data.message:'B\u1ea1n mu\u1ed1n tr\u1ea3i nghi\u1ec7m g\u00ec \u1edf Ninh B\u00ecnh? Cho t\u00f4i bi\u1ebft ng\u00e2n s\u00e1ch, \u0111\u1ecba \u0111i\u1ec3m y\u00eau th\u00edch ho\u1eb7c nh\u00f3m \u0111i \u2014 t\u00f4i s\u1ebd g\u1ee3i \u00fd tour ph\u00f9 h\u1ee3p nh\u1ea5t.');note.style.display='block';\n      showFallback(q,grid);\n    } else {\n      var p=d.data;\n      if(p.note){note.innerHTML='\ud83e\udd16 <strong>AI ch\u1ecdn cho b\u1ea1n \u2014 \"'+q+'\":<\/strong> '+p.note;note.style.display='block';}\n      var tours=(p.tour_ids||[]).map(function(id){var t=T.find(function(x){return x.id===id;});return t?{t:t,r:(p.reasons||{})[id]||''}:null;}).filter(Boolean);\n      if(!tours.length){empty.style.display='block';}\n      else{renderCards(tours,grid);}\n    }\n  }catch(e){\n    spin.style.display='none';\n    note.innerHTML='\ud83e\udd16 <strong>AI:<\/strong> \u0110ang hi\u1ec3n th\u1ecb g\u1ee3i \u00fd ph\u1ed5 bi\u1ebfn nh\u1ea5t cho b\u1ea1n.';note.style.display='block';\n    showFallback(q,grid);\n  }\n  btn.disabled=false;\n}\n\nfunction renderCards(tours,grid){\n  tours.forEach(function(m,i){\n    var t=m.t;var c=document.createElement('div');c.className='tc';\n    c.onclick=function(){window.location.href=t.url;};\n    c.innerHTML='<div class=\"tc-img\"><img decoding=\"async\" src=\"'+t.img+'\" loading=\"lazy\" alt=\"'+t.title+'\">'\n      +(i===0?'<div class=\"tc-badge\">\u2726 AI ch\u1ecdn cho b\u1ea1n<\/div>':(t.badge==='hot'?'<div class=\"tc-badge hot\">\ud83d\udd25 Hot Deal<\/div>':''))\n      +'<\/div>'\n      +'<div class=\"tc-body\"><div class=\"tc-title\">'+t.title+'<\/div>'\n      +(m.r?'<div class=\"tc-why\">\u2713 '+m.r+'<\/div>':'')\n      +'<div class=\"tc-meta\"><span>\u23f1 '+t.dur+'<\/span><span>\ud83d\udccd '+t.loc+'<\/span><span>\u2605'+t.r+(t.rv?' ('+t.rv+')':'')+'<\/span><\/div>'\n      +'<div class=\"tc-price\">'+(t.op?'<s>\u20ab'+(t.op\/1000|0)+'K<\/s>':'')+'\u20ab'+(t.p\/1000|0)+',000<\/div>'\n      +'<button class=\"tc-cta\">Xem & \u0111\u1eb7t ngay \u2192<\/button><\/div>';\n    grid.appendChild(c);\n  });\n}\n\nfunction showFallback(q,grid){\n  var qn=q.toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'');\n  var matched=T.filter(function(t){\n    var titleN=(t.title||'').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'');\n    var locN=(t.loc||'').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'');\n    var tagsN=(t.tags||[]).join(' ').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'');\n    var words=qn.split(\/\\s+\/).filter(function(w){return w.length>1;});\n    return words.some(function(w){return titleN.includes(w)||locN.includes(w)||tagsN.includes(w);});\n  });\n  if(!matched.length) matched=T.slice(0,3);\n  \/\/ \u01afu ti\u00ean combo 399K n\u1ebfu query li\u00ean quan \u0111\u1ebfn gi\u00e1 r\u1ebb ho\u1eb7c combo\n  matched.sort(function(a,b){\n    var hot=['combo','399','trang an show','hot'].some(function(k){return qn.includes(k);});\n    if(hot && b.id===6) return 1;\n    if(hot && a.id===6) return -1;\n    return 0;\n  });\n  renderCards(matched.slice(0,3).map(function(t){return{t:t,r:''};}),grid);\n}\n\ndocument.getElementById('qi').addEventListener('keydown',function(e){if(e.key==='Enter')go();});\n\n(function(){\n  var params=new URLSearchParams(window.location.search);\n  var q=params.get('q');\n  if(q){document.getElementById('qi').value=decodeURIComponent(q);setTimeout(go,300);}\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>T\u00ecm tour Ninh B\u00ecnh ph\u00f9 h\u1ee3p nh\u1ea5t \u2014 trong 10 gi\u00e2y G\u00f5 \u0111\u1ecba danh, ng\u00e2n s\u00e1ch ho\u1eb7c lo\u1ea1i h\u00ecnh \u2014 AI g\u1ee3i \u00fd ngay tour ph\u00f9 h\u1ee3p v\u1edbi b\u1ea1n T\u00ecm tour ph\u00f9 h\u1ee3p \ud83d\udea3 Tr\u00e0ng An thuy\u1ec1n \ud83d\udd25 Combo 399K \ud83c\udf19 Show \u0111\u00eam Hoa L\u01b0 \ud83c\udfd9\ufe0f T\u1eeb H\u00e0 N\u1ed9i 1 ng\u00e0y \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67 Gia \u0111\u00ecnh &#038; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_angie_page":false,"footnotes":""},"class_list":["post-398","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/pages\/398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/comments?post=398"}],"version-history":[{"count":6,"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/pages\/398\/revisions"}],"predecessor-version":[{"id":422,"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/pages\/398\/revisions\/422"}],"wp:attachment":[{"href":"https:\/\/tourninhbinh.vn\/vi\/wp-json\/wp\/v2\/media?parent=398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}