Cách nhúng widget bản đồ trên mọi website
Tạo mã nhúng một lần: nhập địa chỉ của bạn vào trình tạo mã nhúng bản đồ, kéo ghim vào đúng cửa vào của bạn, rồi sao chép một dòng iframe — nó hoạt động trên mọi nền tảng có khối HTML/nhúng. Người dùng WordPress có thể cài plugin và dùng shortcode thay thế. Dù chọn cách nào, bạn cũng không cần khóa API, không cần tài khoản thanh toán, không có cookie, và ghim không bao giờ bị lệch, vì mã nhúng mang theo tọa độ cuối cùng của bạn thay vì mã hóa địa lý lại địa chỉ.
Dựa trên quyền · Riêng tư · Hoạt động trên Chrome, Safari, Firefox, Edge
Bắt đầu ở trình tạo (phần việc thực sự duy nhất)
Mọi thứ bắt đầu tại trình tạo mã nhúng bản đồ. Mã hóa địa lý chỉ diễn ra một lần, ở đó — đoạn mã bạn sao chép mang tọa độ cố định, nên sự cố của bộ mã hóa địa lý hay việc “chuẩn hóa địa chỉ” không bao giờ có thể làm ghim của bạn dịch chuyển sau này. Nhập địa chỉ, xem ghim rơi xuống, rồi kéo nó vào đúng cửa vào thật của bạn trước khi sao chép: mười giây kéo đó chính là khác biệt giữa “đúng con phố” và “đúng cửa”.
Muốn xem một thiết lập nhiều chi nhánh hoàn chỉnh trước khi tự tạo? Mở bản demo của trình tạo — nó tải một công ty mẫu có ba chi nhánh, kèm địa chỉ, ghim đánh số có màu và bảng vị trí hiển thị trực tiếp trong bản xem trước, sẵn sàng để bạn thử.
WordPress: shortcode của plugin hay iframe thuần?
Cả hai cách đều cho ra widget giống hệt nhau — chọn theo sở thích.
Cách dùng plugin (khuyến nghị): tải whatismylocation-widget.zip → wp-admin ▸ Plugins ▸ Add New ▸ Upload Plugin → Activate. Rồi thêm một khối Shortcode:
[whatismylocation_map lat="48.858400" lng="2.294500" name="Acme SARL" address="Champ de Mars, Paris"]
Các thuộc tính đọc giống như các tùy chọn trong trình tạo: theme, marker, zoom, height, directions, và với chi nhánh thì pins="lat,lng,Label~Address|…" cùng panel= và motion= (xem bảng tham chiếu bên dưới). Phần WordPress trong trình tạo sẽ tạo sẵn shortcode hoàn chỉnh cho bạn — không phải gõ gì.
Cách không dùng plugin: dán iframe từ trình tạo vào một khối Custom HTML. Cùng một widget, không có plugin phải cập nhật; đánh đổi là mã dài hơn trong nội dung và sau này không sửa được theo kiểu thuộc tính.
Squarespace, Shopify, Notion — và phần còn lại
Ngoài WordPress, công việc thường chỉ là một lần dán: thêm phần tử HTML/nhúng của nền tảng bạn dùng (Wix Embed HTML, khối Code của Squarespace, Embed của Webflow) rồi dán iframe vào. Có một điểm khiến widget bản đồ dễ hơn widget vị trí: nó không cần thuộc tính allow="geolocation", vì nó không bao giờ hỏi khách truy cập điều gì — nên không có gì mong manh phải giữ lại khi trình tạo trang viết lại HTML của bạn.
Squarespace: thêm một khối Code rồi dán. Có một lưu ý nên biết trước: khối Code yêu cầu gói Business hoặc cao hơn — với gói Personal, khối sẽ hiển thị mã của bạn dưới dạng văn bản thuần thay vì kết xuất nó.
Shopify xứng đáng hơn một lần dán: chúng tôi cung cấp sẵn một section cho theme — một tệp trong theme cho bạn một bảng thiết lập gốc, với các chi nhánh là những block kéo để sắp xếp lại, không cần app và không cần khóa API.
Notion và Google Sites nhúng bằng URL, không phải HTML. Chúng không nhận đoạn mã iframe — thay vào đó, hãy nhấn Copy widget URL trong trình tạo rồi dán vào khối /embed của Notion hoặc Embed ▸ By URL của Google Sites. Widget là một trang độc lập hoàn chỉnh, nên nó hiển thị hoàn hảo theo cả hai cách.
Salesforce Experience Cloud (các trang community công khai): dán iframe vào một thành phần HTML Editor — sau đó nhờ quản trị viên thêm whatismylocation.ai vào Setup ▸ Trusted URLs với chỉ thị CSP frame-src, nếu không Salesforce sẽ âm thầm chặn khung. Đội ngũ làm việc bằng mã có thể bọc chính URL đó trong một Lightning Web Component khoảng 10 dòng:
<!-- wimlMap.html -->
<template>
<iframe src={src} width="100%" height="340"
loading="lazy" title="Map"></iframe>
</template>
// wimlMap.js
import { LightningElement } from 'lwc';
export default class WimlMap extends LightningElement {
src = 'https://whatismylocation.ai/widget/map?lat=48.858400&lng=2.294500&name=Acme';
} Nhiều chi nhánh: bảng vị trí
Một mã nhúng chứa được tối đa 10 vị trí. Ở chế độ Advanced của trình tạo, hãy đặt vị trí từng ghim, cho nó một nhãn và địa chỉ, rồi nhấn Add location. Khách truy cập sẽ thấy một bảng vị trí — dạng accordion cạnh bản đồ trên máy tính, dải thẻ trượt được trên điện thoại — với các ghim đánh số: chọn một chi nhánh sẽ đưa bản đồ bay tới đó và hiện địa chỉ của nó cùng liên kết chỉ đường riêng.
panel=chọn cách bố trí:auto(mặc định — cạnh bên với iframe rộng, dải thẻ với iframe hẹp),side,bottom, hoặcnonecho ghim thường + popup.motion=đặt hiệu ứng chuyển:smooth(bay mượt, mặc định),fade,lively, hoặcnone. Khách truy cập đã bật “giảm chuyển động” trong hệ thống luôn nhận bản chuyển tức thì, dù bạn chọn gì.open=nokhởi đầu với mọi mục thu gọn; bản đồ tự khớp khung cho tất cả chi nhánh vàzoomcủa bạn trở thành mức tối đa.
Tham chiếu các tùy chọn
| Tùy chọn | Giá trị | Ghi chú |
|---|---|---|
lat / lng | độ thập phân | Bắt buộc với một vị trí duy nhất (trình tạo sẽ điền sẵn). |
pins | lat,lng,Label~Address|… | Tối đa 10 chi nhánh; thay cho lat/lng. Nhãn ≤80 ký tự, địa chỉ ≤120; không dùng | hay ~ bên trong. |
name | văn bản ≤80 | Tiêu đề in đậm của thẻ/bảng — thường là tên doanh nghiệp của bạn. |
address | tối đa 3 dòng | Địa chỉ trên thẻ (một vị trí; chi nhánh dùng Label~Address). Trình tạo cho bạn ba ô nhập dòng; trong shortcode WordPress, | phân tách các dòng. |
name_style / address_style | n · b · i · bi | In đậm/in nghiêng theo từng dòng — tiêu đề mặc định là in đậm, và kiểu bạn chọn sẽ thay thế mặc định đó. Trong trình tạo: các chip B/I ở chế độ Advanced. |
maps | google · apple · google,apple | Các liên kết biểu tượng nhỏ “Open in Google Maps” / “Open in Apple Maps” có tooltip khi trỏ chuột, trên thẻ và cho từng chi nhánh trong bảng. Không có giá trị thì không có biểu tượng. |
zoom | 2–19, mặc định 16 | Khi có nhiều chi nhánh, nó trở thành mức tối đa sau khi tự khớp khung. |
theme | light · dark · golden | Khớp với website của bạn. |
marker | emerald · red · amber · indigo · slate | Màu ghim; mặc định là màu xanh cổ điển. |
panel | auto · side · bottom · none | Cách bố trí bảng vị trí (chỉ khi có nhiều ghim). |
motion | smooth · fade · lively · none | Hiệu ứng chuyển chi nhánh; khách đã bật giảm chuyển động luôn nhận bản tức thì. |
open | yes · no | Chi nhánh đầu tiên có mở sẵn hay không (mặc định yes). |
directions | yes · no | Nút chỉ đường — theo từng chi nhánh ở chế độ nhiều ghim. |
iframe height | 220–800 px | 340 phù hợp với một ghim; 400+ thoáng hơn khi có bảng vị trí. |
attribution | yes · no | Chú thích “Powered by” tùy chọn trên trang của bạn — mặc định tắt trong plugin. |
Khắc phục sự cố trên WordPress
Shortcode hiện ra dưới dạng văn bản thuần trên trang. Khối đó không xử lý shortcode. Trong trình soạn thảo khối, hãy dùng khối Shortcode (không phải khối code hay preformatted); trong Elementor dùng widget Shortcode của nó, trong Divi dùng module Code. Người dùng trình soạn thảo cổ điển: gõ nó ở tab Visual dưới dạng văn bản thuần.
Không có gì xuất hiện cả. Xem mã nguồn trang và tìm whatismylocation. Một chú thích HTML về việc thiếu lat/lng nghĩa là tọa độ bị thiếu hoặc không hợp lệ — hãy sao chép shortcode hoàn chỉnh từ trình tạo thay vì tự gõ các thuộc tính.
Iframe biến mất khi bạn lưu (cách không dùng plugin). WordPress loại bỏ iframe với những vai trò người dùng không có quyền unfiltered_html — trên multisite, mặc định điều này bao gồm cả quản trị viên — và một số plugin bảo mật cũng làm vậy. Shortcode của plugin là cách sửa gọn gàng: nó không phụ thuộc vào việc vai trò của bạn có được phép lưu iframe thuần hay không.
Bản đồ bị xám / các ô bản đồ không tải. Ô bản đồ đến từ tile.openstreetmap.org; một trình chặn quảng cáo rất khắt khe hoặc mạng công ty có thể chặn chúng (thẻ thông tin vẫn hiển thị). Hãy kiểm tra lại trên mạng khác hoặc trên điện thoại dùng dữ liệu di động.
Không có bảng vị trí. Bảng chỉ xuất hiện từ 2 ghim trở lên — một vị trí duy nhất sẽ nhận thẻ thông tin cổ điển. Cũng hãy kiểm tra xem panel="none" có bị đặt hay không.
Hiệu ứng chuyển không chạy. Gần như luôn là do thiết lập “giảm chuyển động” của hệ điều hành nơi khách truy cập (hoặc chính bạn) — widget tôn trọng điều đó theo thiết kế và chuyển tức thì. Đây không phải lỗi, và những khách khác vẫn thấy hiệu ứng bạn đã chọn.
Các chỉnh sửa không hiện ra. Một plugin cache (hoặc cache của nhà cung cấp hosting) đang phục vụ trang cũ. Hãy xóa cache trang sau khi sửa thuộc tính shortcode — bản thân widget không có gì để cache.
Từng bước
- Mở công cụ tạo mã nhúng bản đồ, gõ địa chỉ của bạn rồi nhấn Find on map (hoặc dán trực tiếp tọa độ, ví dụ 48.8584, 2.2945).
- Kéo ghim (hoặc bấm vào bản đồ) cho đến khi ghim nằm đúng ngay lối vào — các công cụ định vị địa lý thường đặt điểm ở trung tâm con đường, chứ không phải ngay trước cửa nhà bạn. Mã nhúng sẽ giữ nguyên tọa độ cuối cùng này mãi mãi.
- Thêm tên doanh nghiệp và chọn giao diện. Có nhiều chi nhánh? Chuyển công cụ sang chế độ Advanced và nhấn Add location cho từng chi nhánh — gồm nhãn và địa chỉ.
- Sao chép mã nhúng — hoặc trên WordPress, dùng shortcode có sẵn ngay trên cùng trang — rồi dán vào trang của bạn.
- Xuất bản rồi kiểm tra trang: bản đồ, ghim và nút chỉ đường phải hiện ra ngay lập tức. Không cần khóa, không cần tài khoản, không cần cấu hình gì phía máy chủ.
Câu hỏi thường gặp
Nhúng bản đồ có cần khóa API không?
Một mã nhúng hiển thị được bao nhiêu chi nhánh?
Xem bằng tiếng Anh: How to Embed a Map Widget on Any Site · Tiếng Việt