Sửa lỗi mất khung comment Disqus trên Wordpress

Sau một thời gian sử dụng hệ thống bình luận của Disqus mình thấy nó chạy khá tốt và hiệu quả. Tuy nhiên thời gian gần đây (khoảng từ tháng 32015) thì mình thấy khung comment thường xuyên bị mất, không ổn định. Trong cùng một thời điểm, tại 2 nơi truy cập vào cũng có sự khác biệt, một nơi hiển thị bình thường, một nơi thì không. Mình cũng không nắm rõ tại sao lại như vậy, không rõ là vấn đề nảy sinh từ nhà mạng cung cấp dịch vụ hay bên phía Disqus, vấn đề này thì mình sẽ không bình luận thêm.

Mình thấy rằng mỗi khi khung comment bị mất thì truy cập trang chủ Disqus tại http://disqus.com (giao thức http) cũng không kết nối được. Nếu bạn truy cập thông qua giao thức https (https://disqus.com) thì lại có thể truy cập trang chủ Disqus bình thường.

Hiện tại phiên bản Disqus Comment System đang chạy trên blog của mình là phiên bản 2.84. Các kết nối đến Disqus từ plugin sử dụng giao thức http.

Mình tiến hành điều chỉnh 1 chút trong source của plugin Disqus Comment System để sử dụng giao thức https.

Bạn có thể sử dụng bất cứ chương trình nào cho phép bạn chỉnh sửa mã nguồn mà bạn có hoặc dùng trực tiếp tính năng Edit của Wordpress.

Truy cập vào folder Plugin của Wordpress.

1. Chỉnh sửa file: disqus-comment-system/disqus.php

Tìm đến đoạn:

var s = document.createElement('script');
s.async = true;
s.type = 'text/javascript';
s.src = 'https://' + disqus_shortname + '.<?php echo DISQUS_DOMAIN; ?>/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);

Sửa dòng:

s.src = '//' + disqus_shortname + '.<?php echo DISQUS_DOMAIN; ?>/count.js';

thành:

s.src = 'https://' + disqus_shortname + '.<?php echo DISQUS_DOMAIN; ?>/count.js';

Lưu lại.

2. Chỉnh sửa file: disqus-comment-system/comments.php

Tìm đến đoạn:

(function() {
    var dsq = document.createElement('script'); dsq.type = 'text/javascript';
    dsq.async = true;
    dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();

Sửa dòng:

dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';

thành:

dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';

Lưu lại.

Nếu website của bạn có sử dụng hệ thống cache thì xóa hết cache đi, sau đó tải lại trang để các cập nhật có tác dụng.

Hi vọng rằng Disqus sẽ nhanh chóng cập nhật lại plugin của họ. Một lựa chọn khác cho bạn nếu như không muốn dùng Disqus thì có thể xem qua plugin wpDiscuz.

Nếu các bạn gặp bất cứ khó khăn gì trong việc chỉnh sửa thì cứ liên hệ với mình hoặc để lại comment bên dưới, mình sẽ hỗ trợ.