Dán một dòng script, website của bạn có ngay bảng tỷ số bóng đá trực tiếp — tự cập nhật, tự co giãn theo nội dung, hoạt động trên mọi nền tảng. Không cần đăng ký, không cần API key.
Mỗi mẫu bên dưới là widget thật đang chạy, không phải ảnh chụp. Bấm “Sao chép mã” rồi dán vào nơi bạn muốn nó hiển thị.
Tất cả trận trong ngày kèm tỷ lệ kèo, có tab lọc Live / Kết thúc / Sắp tới. Hợp với khu vực nội dung chính.
<script src="https://tyso.net/embed.js"
data-view="table"
data-tab="all"
data-lang="vi"
data-height="600"></script>
Gọn, vừa cột phải khoảng 300px. Có nút đổi giải ngay trên widget.
<script src="https://tyso.net/embed.js"
data-view="schedule"
data-league="39"
data-lang="vi"></script>
Chọn vòng đấu bằng thanh chip, tự mở đúng vòng hiện tại. Hợp với trang chuyên đề một giải.
<script src="https://tyso.net/embed.js"
data-view="rounds"
data-league="39"
data-lang="vi"></script>
Cùng kiểu bảng nhưng lọc sẵn tab Live. Hợp với trang chủ hoặc khu “đang diễn ra”.
<script src="https://tyso.net/embed.js"
data-view="table"
data-tab="live"
data-lang="vi"
data-height="500"></script>
Tất cả đều không bắt buộc. Bỏ trống thì widget dùng giá trị mặc định.
| Thuộc tính | Giá trị | Mặc định | Công dụng |
|---|---|---|---|
| data-view | table · schedule · rounds | table | Kiểu hiển thị, xem ba mẫu ở trên. |
| data-tab | all · live · finished · upcoming | all | Tab mở sẵn khi tải. Chỉ dùng cho view=table. |
| data-league | mã số giải | tất cả giải | Chỉ hiện một giải. Danh sách mã ở mục dưới. |
| data-lang | vi · en | theo trình duyệt khách | Website tiếng Việt nên đặt cứng vi. |
| data-height | số px | 600 · 480 · 560 | Chiều cao lúc mới tải. Sau đó widget tự giãn theo nội dung. |
| data-max-height | số px | không giới hạn | Trần chiều cao. Vượt trần thì cuộn bên trong widget. |
| data-width | giá trị CSS | 100% | Nên để nguyên và điều khiển bề rộng bằng khối cha. |
| data-autoheight | off | bật | Khoá cứng chiều cao ở data-height. |
Widget tự giãn theo nội dung. Bạn không phải canh chiều cao — widget đo nội dung thật rồi tự điều chỉnh, nên không có thanh cuộn lồng trong trang.
Riêng data-tab="all" vào ngày nhiều giải có thể hơn 260 trận, tức rất dài. Nếu muốn giới hạn, thêm data-max-height="800" — phần dư sẽ cuộn bên trong widget.
Đặt nhiều widget trên một trang? Cứ dán nhiều thẻ script ở đúng những vị trí bạn muốn. Nhưng đừng tạo phần tử có id="tyso-widget" — khi đó mọi widget sẽ dồn hết vào một chỗ và chồng lên nhau.
Dùng cho data-league. Bỏ trống thuộc tính này thì widget hiện tất cả giải.
Trình soạn thảo WordPress xoá thẻ <script> của người dùng không phải quản trị viên,
nên dán thẳng vào bài viết thường không ăn. Cách chắc chắn: thêm shortcode vào functions.php của theme.
function tyso_widget_shortcode( $atts ) {
$a = shortcode_atts( [
'view' => 'table',
'tab' => 'all',
'league' => '',
'height' => '600',
], $atts );
return sprintf(
'<script src="https://tyso.net/embed.js" data-view="%s" data-tab="%s" data-league="%s" data-lang="vi" data-height="%s"></script>',
esc_attr( $a['view'] ),
esc_attr( $a['tab'] ),
esc_attr( absint( $a['league'] ) ?: '' ),
esc_attr( absint( $a['height'] ) )
);
}
add_shortcode( 'tyso_widget', 'tyso_widget_shortcode' );
Sau đó biên tập viên chỉ cần gõ [tyso_widget view="schedule" league="39"] trong bài viết.
Có mất phí không? Không. Widget miễn phí và không giới hạn lượt xem. Đổi lại, vui lòng giữ nguyên dòng ghi nguồn Tyso.net ở cuối widget.
Có cần đăng ký không? Không cần cho widget. Nếu bạn muốn lấy dữ liệu thô để tự dựng giao diện thì cần API key — xem tài liệu API.
Widget có làm chậm website của tôi không? Widget tải trong khung riêng và chỉ tải khi khách cuộn tới, nên không chặn phần nội dung chính. Dù vậy nên đặt tối đa 1–2 widget mỗi trang.
Tôi muốn dữ liệu đẩy realtime vào giao diện tự làm? Có kênh WebSocket riêng cho đối tác, cần đăng ký tên miền trước. Liên hệ qua trang tài liệu API.