Active License Elementor Pro chỉ với 300k/năm/domain Shop Now
Mới Dịch vụ thiết kế website, xử lý mã độc & tối ưu tốc độ chuyên sâu

Code thêm nút sao chép link bài viết trong Elementor

Trang bài viết với nút Sao chép link bài viết nằm dưới tiêu đề và dòng xác nhận màu xanh Đã sao chép link! bên cạnh nút

Bài viết này mình sẽ hướng dẫn bạn cách thêm nút sao chép link bài viết trong Elementor nhé.

Khi đọc xong một bài hay, nhiều người muốn gửi link cho bạn bè nhưng lại phải bôi đen địa chỉ trên thanh trình duyệt rồi copy thủ công, vừa bất tiện vừa dễ copy thiếu. Elementor mặc định không có nút sao chép link bài viết, muốn có thì bạn phải code thêm nhé.

Bạn chỉ cần thêm code dưới vào cuối file functions.php của child theme nhé. Nhớ sao lưu file trước khi sửa, và đừng chèn vào theme cha vì khi theme cập nhật sẽ mất code.

function nn_copy_link_button_shortcode() {
    if (!is_singular()) {
        return '';
    }
    $url = get_permalink();
    $html = '<div class="nn-copy-link-wrap">';
    $html .= '<button type="button" class="nn-copy-link-btn" data-url="' . esc_url($url) . '">Sao chép link bài viết</button>';
    $html .= '<span class="nn-copy-link-msg" aria-live="polite"></span>';
    $html .= '</div>';
    $html .= '<script>
    document.addEventListener("DOMContentLoaded", function () {
        var nut = document.querySelector(".nn-copy-link-btn");
        if (!nut) { return; }
        nut.addEventListener("click", function () {
            var link = nut.getAttribute("data-url");
            var thongBao = document.querySelector(".nn-copy-link-msg");
            function hienThongBao(noiDung) {
                if (thongBao) { thongBao.textContent = noiDung; }
            }
            if (navigator.clipboard && navigator.clipboard.writeText) {
                navigator.clipboard.writeText(link).then(function () {
                    hienThongBao("Đã sao chép link!");
                }, function () {
                    hienThongBao("Không sao chép được, bạn hãy copy link trên thanh địa chỉ.");
                });
            } else {
                var oNhap = document.createElement("textarea");
                oNhap.value = link;
                document.body.appendChild(oNhap);
                oNhap.select();
                try {
                    document.execCommand("copy");
                    hienThongBao("Đã sao chép link!");
                } catch (e) {
                    hienThongBao("Không sao chép được, bạn hãy copy link trên thanh địa chỉ.");
                }
                document.body.removeChild(oNhap);
            }
        });
    });
    </script>';
    return $html;
}
add_shortcode('nut_sao_chep_link', 'nn_copy_link_button_shortcode');

Code trên tạo shortcode [nut_sao_chep_link]: khi chạy, nó lấy link của bài viết đang xem bằng hàm get_permalink() rồi in ra một nút bấm kèm đoạn JS. Bấm nút, JS sẽ dùng navigator.clipboard để copy link và hiện dòng “Đã sao chép link!” ngay cạnh nút. Với trình duyệt cũ hoặc trang chưa chạy HTTPS, code tự chuyển sang cách dự phòng bằng document.execCommand(“copy”) nên vẫn copy được. Điều kiện is_singular() giúp nút chỉ hiện ở trang bài viết/trang đơn, không hiện ngoài trang danh sách.

Đưa nút ra giao diện trong Elementor

Bạn mở template bài viết trong Elementor (Theme Builder → Single Post), kéo widget Shortcode vào vị trí muốn đặt nút — thường là ngay dưới tiêu đề hoặc cuối bài — rồi nhập [nut_sao_chep_link] là xong. Nếu muốn nút trông hợp với theme hơn thì thêm đoạn CSS dưới vào Tùy biến → CSS bổ sung nhé.

.nn-copy-link-wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nn-copy-link-btn { padding: 8px 16px; border: 1px solid #ddd; border-radius: 999px; background: #fff; cursor: pointer; font-size: 14px; }
.nn-copy-link-btn:hover { background: #f5f5f5; }
.nn-copy-link-msg { color: #1a7f37; font-size: 14px; }
Trang bài viết với nút Sao chép link bài viết nằm dưới tiêu đề và dòng xác nhận màu xanh Đã sao chép link! bên cạnh nút
Kết quả: nút Sao chép link bài viết nằm ngay dưới tiêu đề bài viết, bấm là copy link và hiện dòng xác nhận Đã sao chép link!.

Lưu ý khi dùng

API clipboard chỉ chạy đầy đủ trên trang HTTPS; nếu website của bạn vẫn chạy HTTP thì nút vẫn hoạt động nhờ cách dự phòng, nhưng bạn nên chuyển sang HTTPS sớm vì vừa tốt cho SEO vừa an toàn hơn cho người đọc.

Kết luận

Vậy là chỉ với 1 shortcode bạn đã thêm được nút sao chép link bài viết trong Elementor rồi nhé. Tính năng này đi chung với bài code thêm thanh tiến trình đọc bài viết trong Elementor là thành combo giữ chân và lan tỏa bài viết khá tốt cho blog.

Nếu cần mình kèm 1-1 về Elementor thì cứ liên hệ mình nhé.

Nhân Viên

Nhân Viên

Web Developer & WordPress Expert

Ngọc Nguyễn - Chuyên gia thiết kế Website WordPress, tối ưu tốc độ 90+ và xử lý dứt điểm mã độc. Đam mê chia sẻ kiến thức hữu ích đến cộng đồng lập trình & webmaster.

Để lại bình luận hoặc thắc mắc

Email của bạn sẽ không được hiển thị công khai.

Ngọc Nguyễn
Ngọc Nguyễn
| Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ | Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ
Tư vấn miễn phí