Thứ Ba, 18 tháng 7, 2017

Sử dụng nhiều giao diện trên một website WordPress

Trên một số trang tin tức lớn như kenh14, vnexpress,…chúng ta có thể thấy mỗi một chuyên mục đều có một giao diện khác nhau. Trong thời gian cách đây khá lâu blog mình đã có một bài viết nói về việc sử dụng nhiều giao diện khác nhau cho Post – Page nhưng cách này có vẻ hơi khó và cũng chưa hoàn thiện lắm.

Dĩ nhiên cách dễ nhất là sử dụng các plugin có sẵn nhưng thời gian qua lại không có plugin nào hỗ trợ việc này. Nói như thế không có nghĩa là không có vì bây giờ đã có một plugin miễn phí giúp chúng ta có thể dễ dàng sử dụng nhiều giao diện khác nhau cho trang bất kỳ, có thể tùy biến menu và widget trên từng giao diện, plugin đó chính là Multiple Themes.

Một điều tuyệt vời của plugin này là cho phép chúng ta sử dụng một giao diện bất kỳ cho một đường dẫn bất kỳ chứ không phải chỉ gói gọn vào category, tag, post hay page. Nó cho phép chúng ta sử dụng một giao diện khác dựa trên truy vấn hoặc một truy vấn nào đó với giá trị nào đó. Ví dụ mình có thể áp dụng một giao diện đặc biệt dành cho các trang tìm kiếm với truy vấn là https://thachpham.com/?s=.

Hoặc nếu bạn đang sử dụng một số Parked Domain khác trỏ về website chính, plugin cũng có thể cho phép thiết lập các giao diện riêng dành cho các đường dẫn định danh này (Alias).

Chuẩn bị sẵn giao diện

Để sử dụng plugin này, giao diện của bạn phải được upload sẵn lên website tại thư mục /wp-content/themes/ hoặc tải về từ thư viện WordPress Themes.

Sau khi cài plugin Multiple Themes hoàn tất, chúng ta sẽ tiến hành thiết lập tại Settings -> Multiple Themes plugin.

Tại đây chúng ta sẽ có các phần bao gồm:

Settings: thiết lập cơ bản để chọn theme cho trang chủ, các trang con.Site Aliases: Thiết lập các tên miền aliases để hỗ trợ plugin xác định đường dẫn, nếu bạn có sử dụng thêm parked domain để trỏ về website chính.Advanced Settings: Thiết lập theme cho toàn trang, toàn post hay toàn page.Theme Options: Hướng dẫn thiết lập menu, widget cho plugin này.System Information: Thông tin hệ thống host đang chạy website.Help: Hướng dẫn gửi yêu cầu hỗ trợ đến tác giả.

Nhìn chung là vậy, ở dưới mình sẽ hướng dẫn một số case cơ bản khi dùng plugin này.

Để thiết lập một giao diện dùng riêng cho trang chủ, chúng ta sẽ vào phần Settings của plugin này và tìm mục Select Theme for Site Home, ở đây bạn sẽ chọn giao diện cần sử dụng cho trang chủ.

Như vậy nghĩa là mình sẽ sử dụng giao diện Hueman cho trang chủ. Ở đây plugin sẽ không phân biệt trang chủ bạn là một trang tĩnh hay danh sách các bài viết mới nhất, miễn đường dẫn là domain-của-bạn.ltd là nó nhận đây là trang chủ.

Ví dụ bạn muốn thiết lập giao diện riêng cho một category thì cũng vào mục Settings của plugin này và tìm mục For An Individual Page, Post or other non-Admin page, sau đó thêm đường dẫn của trang tại phần URL of Page, Post, Prefix or other và chọn giao diện cần kích hoạt.

Bạn có thể dùng URL bất kỳ, kể cả một post hay một page nào đó.

Sau khi thiết lập giao diện của một trang bất kỳ mà bạn không có nhu cầu sử dụng nữa, chúng ta có thể xóa đi trong mục Settings, tại phần Current Theme Selection Entries và đánh dấu mục Delete vào trang cần xóa rồi ấn Change là hoàn tất.

Để thiết lập giao diện riêng cho tất cả Post hoặc Page còn lại (ngoại trừ các trang đã thiết lập giao diện riêng), bạn có thể truy cập vào mục Advanced Settings của plugin này và tìm phần Select Theme for All Pages để thiết lập giao diện cho tất cả page, và mục Select Theme for All Posts để thiết lập giao diện cho tất cả post.

Khi sử dụng plugin này, bạn nên thiết lập giao diện sử dụng cho các trang còn lại thay vì sử dụng theme kích hoạt ở Appearance -> Themes, lý do chút nữa ở phần dưới mình sẽ nói sau. Để thiết lập phần này bạn vào phần Advanced Settings của nó và tìm phần Theme for Everything.

Trên mỗi giao diện đều có cách thiết lập Menu, Widget khác nhau nên khi sử dụng plugin này, chúng ta cần phải thiết lập các phần này cho toàn bộ theme để đảm bảo giao diện hiển thị ra như ý muốn.

Bạn vào mục Appearance -> Customize trong trang quản trị.

Sau đó chọn giao diện cần thiết lập tại phần Active Theme bằng cách ấn vào nút Change. Nếu giao diện đang kích hoạt là giao diện cần thiết lập thì thôi.

Sau đó tìm phần Menus và gán menu vào thôi.

Xem thêm: Hướng dẫn sử dụng Menus trong WordPress

Cũng giống như thiết lập menu, bạn vào Appearance -> Customize.

Sau đó chọn giao diện cần thiết lập.

Và cuối cùng là chọn Widgets để thêm widget vào giao diện.

Xem thêm: Hướng dẫn sử dụng Widget trong WordPress

Với các giao diện có Theme Option (các tùy chọn đi kèm với theme) sử dụng tính năng Customize có sẵn của WordPress thì quá dễ rồi, chúng ta có thể sử dụng cách giống như trên để thiết lập cho từng theme.

Một vài trường hợp giao diện có phần Theme Option riêng biệt như thế này chẳng hạn.

Vậy thì ta chỉ còn một cách là kích hoạt giao diện cần sửa Theme Options lên tại mục Appearance -> Themes và sau đó truy cập vào phần Theme Option của giao diện đó mà chỉnh sửa.

Để làm phần này thì bạn nên thiết lập giao diện mặc định của toàn trang tại phần Advanced Settings -> Theme for Everything để khi kích hoạt giao diện của trang sẽ không bị ảnh hưởng.

Lưu ý khi kích hoạt giao diện

Khi kích hoạt giao diện thì các thiết lập Menus, Widgets của từng giao diện mà ta đã thiết lập trước đó có thể bị mất, vì vậy hãy lưu ý khi sử dụng. Tốt nhất là nên sử dụng các giao diện sử dụng toàn bộ là Customize hết.

Sau khi tìm hiểu nhiều giải pháp khác nhau thì mình thấy đây là plugin sử dụng nhiều giao diện cho website WordPress ổn định và dễ sử dụng nhất hiện tại, ít gặp rắc rối hơn bởi vì WordPress mặc định không hỗ trợ nên việc sử dụng nhiều giao diện cùng lúc có thể sẽ hơi rắc rối và nhiều lỗi, quan trọng là giải pháp nào ít lỗi hơn thôi.

Hy vọng plugin này sẽ giúp được nhiều bạn.

.
This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.

Địa chỉ IP có thật sự ảnh hưởng tới thứ hạng website?

Lâu lắm rồi mình cũng chưa có dịp viết bài liên quan tới lĩnh vực SEO, nên thể theo yêu cầu của nhiều bạn thì hôm nay mình sẽ tiếp tục mần một bài liên quan tới SEO về một vấn đề rất nhiều bạn băn khoăn; đó là Địa chỉ IP của máy chủ có ảnh hưởng tới thứ hạng của website, hoặc sử dụng nhiều website cho một IP có sao không, làm website vệ tinh có cần khác IP không. Với các câu hỏi đại loại như vậy, bạn sẽ có câu trả lời trong bài viết này.

Về chi tiết khái niệm này bạn có thể xem trên Wikipedia, ở đây mình sẽ trình bày một cách ngắn gọn và dễ hiểu nhất.

Trên môi trường Internet, các thiết bị sẽ kết nối với nhau thông qua một địa chỉ được xác định của từng thiết bị và địa chỉ này là Địa chỉ IP. Giả sử khi bạn gửi một thư điện tử (email) tới một địa chỉ nào đó, máy tính của bạn cũng phải xác định được địa chỉ IP của người nhận email đó mà thông thường chúng ta không gõ địa chỉ IP để gửi thư mà sẽ gõ địa chỉ email của họ, và địa chỉ email của họ đã được phân giải tới địa chỉ IP của máy chủ nhận thư thông qua hệ thống Máy chủ tên miền (Domain Name Server – DNS).

Với các địa chỉ IP để hoạt động được trên Internet phải được cấp bởi tổ chức có thẩm quyền tương ứng với từng khu vực địa lý, ví dụ như ở Châu Á – Thái Bình Dương thì có APNIC, và ở từng quốc gia cũng có đơn vị có nhiệm vụ cấp phát và quản lý địa chỉ IP như Việt Nam thì có VNNIC.

Một điều hiển nhiên là các website của chúng ta sẽ được đặt trên những máy chủ vật lý đặt tại các trung tâm dữ liệu và tùy theo từng dịch vụ mà website sẽ có địa chỉ IP riêng hay IP dùng chung.

Ví dụ nếu sử dụng dịch vụ thuê máy chủ vật lý thì ta sẽ có một IP riêng để kết nối tới máy chủ đó, tương tự với VPS vì hệ thống đang sử dụng là hoàn toàn tách biệt. Còn nếu sử dụng dịch vụ Web Hosting thông thường ta sẽ có địa chỉ IP dùng chung vì các website sẽ đặt trên cùng một Webserver với cùng một thiết lập, chúng ta cũng có thể mua IP riêng cho dịch vụ Web Hosting nếu nhà cung cấp có hỗ trợ.

Như vậy tất cả website của chúng ta đều có một địa chỉ IP để xác định được máy chủ nào đang lưu trữ nó, chỉ là chúng ta sử dụng tên miền và hệ thống phân giải địa chỉ IP để có thể truy cập vào thông qua một tên miền dễ nhớ mà thôi.

Những gì mình trình bày ở trên bạn có thể tự hiểu ra rằng nếu dùng IP riêng cho website, thì Google sẽ xác định chúng ta sử dụng hệ thống riêng chứ không phải dùng chung. Điều này tránh được các rủi ro khi xây dựng tập hợp nhiều website vệ tinh để Google nghĩ rằng các website này là một chủ sở hữu riêng, không bị phạt “hội đồng”. Hoặc chúng ta cho rằng các website cùng IP với nhau mà trỏ link cho nhau sẽ không tốt, Google biết và coi điều này là spam.

Tuy nhiên điều này là chưa có dẫn chứng chính xác mà chỉ là đồn đoán. Nếu bạn đã từng sử dụng Web Hosting với IP chung chắc cũng có thể hiểu rằng khi dùng IP chung website vẫn có thứ hạng bình thường và không bị phạt do một trong các website dùng IP đó bị phạt, điều này chưa từng xảy ra.

Riêng bản thân mình sau nhiều năm làm SEO và có nhiều hệ thống website chính có, website vệ tinh có, khi dùng IP chung vẫn SEO bình thường và có thứ hạng tốt. Nếu có ảnh hưởng, thì khi chúng ta chuyển máy chủ từ Việt Nam ra nước ngoài hoặc ngược lại thì trong 1 tuần đầu thứ hạng của website có thể sẽ lên xuống, mà giang hồ gọi là “từ khóa dance”. Nhưng sau đó thì mọi sự vẫn yên ổn nếu website mình không đi spam, câu backlink dẫn tới bị phạt.

Các website vệ tinh phụ của mình đều dùng IP chung hết vì mình không muốn tốn tiền cho một cái mà mình chưa rõ nó có ích hay không, và kể cả 1 website trong hệ thống vệ tinh mình bị đẩy vô sandbox thì các website kia đều bình an vô sự.

Tuy nhiên, nếu bạn đặt website trên một dịch vụ Web Hosting dùng IP có quá nhiều website spam, nội dung đồi trụy,…thì sẽ có một chút ảnh hưởng.

Có nhiều người quan niệm rằng dùng IP riêng sẽ làm website nhanh hơn!? Điều này lại càng sai vì khi dùng máy chủ riêng có thể sẽ làm website bạn nhanh hơn nhưng địa chỉ IP riêng không có ý nghĩa gì về việc này cả. Vai trò của địa chỉ IP chỉ là xác định thiết bị đang chứa dữ liệu website đó.

Thêm một lý do nữa để dùng IP riêng đó là có thể sử dụng chứng chỉ SSL riêng (như chứng chỉ mua ở Comodo chẳng hạn), nhưng hiện nay đa phần các nhà cung cấp dịch vụ hosting đều sử dụng cPanel mà cPanel hiện đã hỗ trợ SNI giúp có thể sử dụng chứng chỉ SSL riêng mà không cần đến IP riêng.

Bản thân Google cũng hiểu rằng đa phần các website trên internet hiện nay là sử dụng chung IP nên điều này là không cần thiết. Chưa kể nếu bạn có dùng CloudFlare thì cũng là sử dụng IP chung trên hệ thống của họ và điều này cũng không ảnh hưởng.

Nói chung thì cho dù có ai nói gì đi nữa thì Matt Cutts nói thì sẽ thuyết phục hơn, bạn xem video ở dưới nhé.

Vấn đề này không phải chỉ quan tâm từ bây giờ, mà từ năm 2006 Matt Cutts đã có một xác nhận tại đây: “… there was recently a discussion on a NANOG (North American Network Operators Group) email list about virtual hosting vs. dedicated IP addresses. They were commenting on the misconception that having multiple sites hosted on the same IP address will in some way affect the PageRanks of those sites. There is no PageRank difference whatsoever between these two cases (virtual hosting vs. a dedicated IP).”

Và cũng liên quan tới IP, cho câu hỏi sử dụng tên miền quốc gia ở các địa chỉ IP trên các quốc gia khác thì có sao không, Matt Cutts cũng xác nhận là việc đó hoàn toàn ok.

Sau những gì mình kể ra ở trên không có nghĩa là IP riêng không có ích, nhưng nếu bạn sử dụng Web Hosting thì không nhất thiết phải cần IP riêng cho từng website. Còn lợi ích khi dùng IP riêng trên website thì có như sau:

Địa chỉ tạm của website có dạng http://123.456.78.9/ thay vì http://123.456.78.9/~username/ nếu dùng Web Hosting. Không bị ảnh hưởng nếu nhà cung cấp Web Hosting có chiến dịch thay đổi IP chung. Có thể sử dụng chứng chỉ SSL riêng mà không cần công nghệ SNI. Trông chuyên nghiệp hơn (nhưng có ai rảnh mà đi coi IP của website).

Còn mặc định khi bạn sử dụng dịch vụ VPS hay máy chủ riêng là sẽ có IP rồi vì cơ bản hai công nghệ này không hỗ trợ IP dùng chung. Nhưng trên máy chủ bạn có thể chứa nhiều website chung với nhau và các website đó sẽ dùng chung IP.

Hiện nay tài nguyên IPv4 đang dần cạn kiệt nên chúng ta hãy xem xét khi nào cần dùng IP riêng, khi nào dùng IP chung để tránh lãng phí tài nguyên. Còn IP riêng có ảnh hưởng tới SEO hay không thì bản thân mình chưa bao giờ tin vào điều này.

.
This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.

Hướng dẫn cài lại WordPress khi bị dính mã độc

Sẽ cập nhật video sau.

Việc website WordPress bị dính mã độc bởi việc sử dụng theme/plugin không rõ nguồn gốc (nếu không muốn nói là dùng lậu) hoặc đặt mật khẩu đơn giản dễ đoán là chuyện quá đỗi bình thường của chúng ta.

Hiện nay khi website bị dính mã độc thì thường là có 3 kịch bản thường gặp như sau:

Trang chủ bị đổi thành một trang cảnh báo là đã bị hack kèm theo nhạc hoành tráng. Website âm thầm gửi đi các email lừa đảo, spam liên tục trên host mà chủ nhân không hề hay biết. Website chứa các đường liên kết ẩn quảng cáo các dịch vụ thuốc kích dục, cờ bạc, phishing scam.

Và khi website bạn bị rơi vào các trường hợp này, các nhà cung cấp Hosting sẽ khóa lại. Nếu bạn dùng VPS thì sẽ bị cảnh báo hoặc khóa nếu rơi vào kịch bản số 1 và tên miền bị rơi vào sổ đen không sớm cũng muộn, lúc này website sẽ bị tụt thứ hạng ở máy tìm kiếm, khi truy cập bằng Google Chrome sẽ có cảnh báo màu đỏ rằng website này rất nguy hiểm.

Thế nhưng để website không bị hack cũng không phải khó, chỉ cần bạn dùng sản phẩm có bản quyền đầy đủ, đặt mật khẩu phức tạp (lưu vô Lastpass chẳng hạn) và thiết lập iThemes Security là được. Nếu bạn dùng Hosting thì nên chọn các đơn vị cung cấp hosting sử dụng CloudLinux như AZDIGI, StableHost, A2Hosting, Hawkhost,…mà sử dụng để tránh bị nhiễm mã độc từ anh bạn hàng xóm.

Chúng ta hay lên các trang mạng hỏi công cụ quét mã độc khi bị rơi vào các trường hợp này, thế nhưng tin buồn dành cho bạn là không có công cụ nào giúp bạn gỡ mã độc miễn phí cả, mình thề đấy. Chỉ duy nhất có 1 dịch vụ gỡ mã độc mà mình biết và sử dụng qua rồi đó là Sucuri Antivirus với giá rất đắt đỏ và bạn phải chấp nhận nếu cần gỡ mã độc hoàn toàn. Thế nhưng sau khi gỡ xong, chưa chắc website đã thật sự sạch sẽ mà chỉ duy nhất có 1 cách: Cài lại từ đầu.

Cài website lại từ đầu là cách duy nhất cũng là tốt nhất để website của bạn trở nên sạch sẽ. Cài website lại không có nghĩa là bạn sẽ viết lại nội dung hay sản phẩm vì các dữ liệu này sẽ lưu vô database, nhưng tin vui là không có mã độc nào đính kèm vô database của bạn cả. Cài website lại nghĩa là chúng ta sẽ lấy dữ liệu mềm lưu trong database ở website cũ, sau đó cài website mới và nhập các dữ liệu này vào, rồi cài lại plugin và theme từ đầu với nguồn gốc rõ ràng hơn.

Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết cách làm việc này.

Bây giờ bạn hãy tiến hành cài đặt một website WordPress mới trên host hoặc localhost và sử dụng một tên miền khác để chạy website này nhằm đảm bảo bạn vừa truy cập vào website mới và cả website cũ để tiện kiểm tra, đối chiếu.

Sau đó mở tập tin wp-config.php của website mới và chèn đoạn sau vào dưới <>

define('WP_HOME','http://example.com');define('WP_SITEURL','http://example.com');

Thay example.com thành địa chỉ của website mới nhé.

Đầu tiên hãy truy cập phpMyAdmin để export dữ liệu của database website đang sử dụng ra và tải về máy. Nếu host bạn không có phpMyAdmin, thì có thể dùng plugin BackWPUp để backup database và tải về, chỉ cần database thôi nhé.

Tham khảo: Xuất dữ liệu database trong phpMyAdmin

Kế tiếp là hãy mang các thư mục chứa hình ảnh upload trong /wp-content/uploads/ như 2017, 2016, 2015, 2014,…về máy. Lưu ý là chỉ các thư mục chứa hình ảnh upload, các thư mục khác không cần lấy về để đảm bảo an toàn. Nếu bạn dùng Hosting thì có thể vào File Manager dùng tính năng Compress để nén các thư mục này lại và tải về. Hoặc nếu bạn cài website mới trên cùng host thì không cần tải mà chỉ cần copy dữ liệu các thư mục này vào /wp-content/uploads/ ở thư mục website mới.

Bây giờ bạn hãy truy cập vào phpMyAdmin tại host (hoặc localhost) đang chạy website mới và tìm tên database của website đó, sau đó ấn Nhập (Import) và tải lên tập tin .sql mà bạn có được ở bước 1.

Lỗi khi import database

Nếu bạn gặp lỗi khi import database thì hãy tạo một database mới hoàn toàn và import vào database mới. Sau đó thiết lập website sử dụng database mới nhé.

Sau khi nhập xong, bạn hãy xem tên bảng dữ liệu có tiền tố là wp_ hay một tiền tố khác. Nếu bạn sử dụng tên tiền tố khác với wp_ thì hãy mở tập tin wp-config.php ở website mới, tìm $table_prefix và thay wp_ thành tiền tố của bảng database. Ví dụ mình có bảng tên 38dug_options trong cơ sở dữ liệu thì sẽ thay thành:

$table_prefix = '38dug_';

Sau đó hãy tải các thư mục hình ảnh trong website cũ đang chạy trên host (wp-content/uploads) vào thư mục wp-content/uploads ở website mới để đảm bảo hình ảnh không bị mất.

Để kiểm tra, bạn có thể truy cập vào phần Media Library trên website mới để xem đã có hiển thị hình ảnh đầy đủ hay chưa. Nếu hình ảnh hiển thị ra bình thường thì đã hoàn tất.

Bây giờ bước còn lại của bạn là hãy cài lại theme trên website. Nếu bạn dùng theme trả phí thì tốt nhất nên mua bản quyền theme đó để đảm bảo hơn, được cập nhật phiên bản mới thường xuyên nếu có lổ hổng bảo mật xảy ra.

Về bước này chắc mình không cần nói qua rồi, khi cài theme nếu theme đó yêu cầu cài thêm plugin gì bạn có thể cài vào vì các plugin đi theo theme cũng rất đảm bảo nên bạn có thể hoàn toàn yên tâm.

Khi bạn đã thiết lập website hoàn tất và bắt đầu sử dụng. Hãy tiến hành truy cập vào website cũ và xóa toàn bộ dữ liệu trên host đi, sau đó chuyển mã nguồn của website bạn mới làm lên host vào thư mục của website chính. Về bước này, bạn làm giống như việc chuyển host của một website bình thường bao gồm 2 bước:

Backup và khôi phục mã nguồn website mới lên host. Backup database và khôi phục database trên host.

Tham khảo:

Sau khi chuyển hoàn tất, hãy mở tập tin wp-config.php của website mới trên host và sửa lại WP_HOME, WP_SITEURL thành địa chỉ website chính. Ví dụ:

define('WP_HOME','http://example.com');define('WP_SITEURL','http://example.com');

Việc này sẽ đảm bảo bạn có thể truy cập vào website mới theo tên miền chính của website.

Bây giờ bạn hãy đăng nhập vào website mới trên host và cài plugin Better Search Replace, sau đó vào mục Tools -> Better Search Replace và tìm tên miền cũ trong tất cả bảng database và đổi sang tên miền mới, bỏ chọn Run as dry run như hình dưới.

Như vậy tất cả các liên kết trong website đang sử dụng tên miền cũ sẽ được đổi thành tên miền mới mà không cần phải làm thủ công.

Ngay sau khi website đã hoạt động hoàn tất, hãy tiến hành thiết lập bảo mật cho website. Bạn hãy xem qua serie Bảo mật WordPress toàn tập và làm theo các bước để tăng sự an toàn của website.

Và quan trọng nhất là không sử dụng các plugin/theme được chia sẻ không rõ nguồn gốc vì điều này là nguyên nhân của 90% trường hợp bị mã độc mà mình từng biết đến. Nếu bạn không cài cái gì lạ vào website, mật khẩu quản trị phức tạp, thiết lập plugin bảo mật tốt thì bạn sẽ không cần quan tâm đến các giải pháp bảo mật nào nữa.

Chúc website của bạn sớm được phục hồi và hoạt động ổn định.

.
This post was made using the Auto Blogging Software from WebMagnates.org This line will not appear when posts are made after activating the software to full version.