Tự động đưa link nguồn bài viết khi sao chép

0
2681

Để có một bài viết hay, có ích cho người dùng, chắc chắn bạn phải bỏ ra không ít thời gian, công sức và tâm huyết vào bài viết của mình. Và thực sự, bạn cũng mong muốn ràng khi ai chia sẻ lại nội dung cũng có để nguồn tham khảo về bài viết gốc trên website của bạn. Chẳng hạn có ai đó copy bài viết nhưng lại quên mất đưa link nguồn vào hoặc lười :P. Vì thế, chúng ta cũng nên giúp họ bằng cách tự động ghi nguồn vào bài viết luôn 😀

Nếu thật sự họ muốn copy bài viết của bạn thì khá là khó chống đó nhé 🙂 và mình sẽ giải thích tại sao. Phương pháp mình sắp trình bày dưới đây cũng rất cơ bản và nó giúp ai đó có quên, hay lười vẫn có thể đưa link nguồn bài viết vào.

Như vậy để tự động đưa link nguồn bài viết khi sao chép bạn nhúng đoạn code javascript sau vào thẻ <head></head> của website:

<script type="text/javascript">
	function addLink() {
		//Get the selected text and append the extra info
		var body_element = document.getElementsByTagName('body')[0];
		var selection;
		selection = window.getSelection();
		var pagelink = "<br /><br /> Nguồn bài viết: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
		var copytext = selection + pagelink;
		var newdiv = document.createElement('div');
		
		//hide the newly created container
		newdiv.style.position='absolute';
		newdiv.style.left='-99999px';
		
		//insert the container, fill it with the extended text, and define the new selection
		body_element.appendChild(newdiv);
		newdiv.innerHTML = copytext;
		selection.selectAllChildren(newdiv);
		
		window.setTimeout(function() {
			body_element.removeChild(newdiv);
		},0);
	}
document.oncopy = addLink;
</script>

Tự động đưa link nguồn bài viết khi sao chép trên wordpress?

Cách 1: Tương tự, bạn cũng có thể đưa trực tiếp vào mã nguồn của wordpress, nhưng thông thường thì không nên đưa trực tiếp như vậy. Ta sẽ thông qua file functions.php của theme để chèn đoạn mã vào. Bạn mở file functions trong theme của mình và thêm vào đoạn code sau:

function add_copyright_text(){
if (is_single()){?>
<script type="text/javascript">
	function addLink() {
		//Get the selected text and append the extra info
		var body_element = document.getElementsByTagName('body')[0];
		var selection;
		selection = window.getSelection();
		var pagelink = "<br /><br /> Nguồn bài viết: <a href='"+document.location.href+"'>"+document.location.href+"</a>";
		var copytext = selection + pagelink;
		var newdiv = document.createElement('div');
		
		//hide the newly created container
		newdiv.style.position='absolute';
		newdiv.style.left='-99999px';
		
		//insert the container, fill it with the extended text, and define the new selection
		body_element.appendChild(newdiv);
		newdiv.innerHTML = copytext;
		selection.selectAllChildren(newdiv);
		
		window.setTimeout(function() {
			body_element.removeChild(newdiv);
		},0);
	}
document.oncopy = addLink;
</script>
<?php
        }
}
add_action( 'wp_head', 'add_copyright_text');

Cách 2: Sử dụng plugin Append Link on Copy

Rất dễ, bạn chỉ cần cài đặt và tùy chỉnh dòng thông báo cho phù hợp với website của mình. Ví dụ, site tiếng việt thì bạn nên thay thế read mode thành xem thêm hoặc nguồn bài viết…

Cách hoạt động của code tự động đưa link nguồn bài viết khi sao chép

Các bạn có thể thấy đoạn code này chủ yếu dựa vào javascript để thêm phần nguồn bài viết vào nội dung copy. Đôi khi nó sẽ là khó chịu với người dùng khi copy một vài đoạn text cũng bị thêm link vào, như thế bạn có thể tùy biến, code thêm dòng kiểm tra nếu copy trên bao nhiêu từ thì mới thêm link chẳng hạn.

Phương pháp này rất cơ bản và chỉ cần tắt javascript trên trình duyệt là nó hoàn toàn vô tác dụng các bạn ạ. Ngoài ra, khi gặp những tool tự động lấy nội dung thì cũng không khả thi, vì chúng lấy bài của bạn dưới một dạng khác, không phải thao tác copy/paste nghiệp dư nữa :(.

5/5 - (3 bình chọn)

BÌNH LUẬN

Nội dung bình luận
Tên của bạn là gì?