Sửa lỗi không tương thích của Google XML Sitemap với WordPress 3.0 Muti-site

Published by Việt Coding on

WordPress 3.0 với tên mã Thelonious ra đời kèm theo chức năng Muti-site cho phép bạn chạy một hoặc 10 triệu website trên chỉ với duy nhất một bản cài đặt. Việt Coding đã có thời gian khoảng gần 1 tháng thử nghiệm chức năng multi-site này từ phiên bản 3.0 RC cho đến bản 3.0 chính thức và đó là những trải nghiệm khá là thú vị.

Như các bạn đã biết, một phiên bản mới ra đời bao giờ cũng đi kèm với một số những rắc rối như là một số plugins, themes không còn tương thích. Việt Coding đã có một phen đau đầu khi một trong số những plugin quan trọng nhất – mà bảo đảm WPer nào cũng dùng – là Google XML Sitemap không tương thích với WP 3.0 Multi-site.

Sitemap - Một thành phần không thể thiếu cho web/blog của bạn

Sitemap - Một thành phần không thể thiếu cho web/blog của bạn

Khi bạn kích hoạt chức năng Multi-site, sẽ thấy một thông báo đỏ lòm như sau trong Admin Dashboard

Plugin Google XML Sitemap không tương thích với WP 3.0 Multi-site

Plugin Google XML Sitemap không tương thích với WP 3.0 Multi-site

lúc này bạn chỉ có thể chọn một trong hai hoặc Google XML Sitemap hoặc Multi-site.

Việt Coding đã vào thử website tác giả của plugin này nhưng không thấy thông tin nào về phiên bản nâng cấp tương thích. Đồng thời Việt Coding cũng thử “liếc mắt” qua một số plugin khác nhưng không thực sự tìm được một sự thay thế vừa ý. Có như vậy mới thấy,

khi một sản phẩm nào đó đã chiếm được tình cảm của ta thì rất khó mà thay thế được

May mắn thay, cuối cùng Việt Coding đã tìm thấy một bài viết hướng dẫn cách chỉnh sửa mã nguồn Google XML Sitemap cho tương thích với WP Multi-site. Chúng ta bắt đầu nhé:

Bước 1: Sửa mã nguồn plugin:

Đầu tiên, bạn mở  wp-content/plugins/google-sitemap-generator/sitemap.php, tìm đến đoạn mã sau:

[php]
//Check for 3.0 multisite, NOT supported yet!
if((defined(‘WP_ALLOW_MULTISITE’) && WP_ALLOW_MULTISITE) || (function_exists(‘is_multisite’) && is_multisite())) {
if(function_exists(‘is_super_admin’) && is_super_admin())
{
add_action(‘admin_notices’, array(‘GoogleSitemapGeneratorLoader’, ‘AddMultisiteWarning’));
}
return;
}
[/php]

và chuyển nó thành comment bằng cách thêm dấu /* vào đầu và */ vào cuối đoạn mã. Trông nó như sau:

[php]
/*
//Check for 3.0 multisite, NOT supported yet!
if((defined(‘WP_ALLOW_MULTISITE’) && WP_ALLOW_MULTISITE) || (function_exists(‘is_multisite’) && is_multisite())) {
if(function_exists(‘is_super_admin’) && is_super_admin())
{
add_action(‘admin_notices’, array(‘GoogleSitemapGeneratorLoader’, ‘AddMultisiteWarning’));
}
return;
}
*/
[/php]

Bước 2: Chỉnh sửa Rewrite Rule của WordPress.

Bạn tìm đến tập tin .htaccess và thêm 2 dòng sau vào cuối :

RewriteRule ^sitemap.xml sitemap-%{SERVER_NAME}.xml [L]
RewriteRule ^sitemap.xml.gz sitemap-%{SERVER_NAME}.xml.gz [L]

Bước 3: Cấu hình lại plugin:

Bạn chú ý rằng, với cách mod này bạn không thể cấu hình ở dạng Network mà phải cấu hình cho từng site con. Bạn truy cập vào quyền Super  Admin và Deacitve plugin này trên toàn Network. Lúc này, mỗi Admin của site con phải tự active và cấu hình lại cho site của mình.

Giả sử, hiện tại website anhdung.info có 1site chính và 2 site con là news.anhdung.infogame.anhdung.info, thì cấu hình sẽ như sau. Admin của mỗi site hoặc Super Admin login vào, tìm đến phần Settings \ XML Sitemap.

Cấu hình lại sitemap ứng với mỗi website con

Cấu hình lại sitemap ứng với mỗi website con

Khi đó phần cấu hình cho game.anhdung.info là :

/htdocs/anhdung.info/www/main/wp-content/blogs.dir/3/files/sitemap-game.anhdung.info.xml và sitemap này được truy cập qua http://anhdung.info/files/sitemap-game.anhdung.info.xml. Tương tự cho các site con khác.

Bước 4: Kiểm tra lại và tận hưởng thành quả 🙂

Truy cập thử vào các sitemap để xem nó hiển thị có chính xác không. Nếu không có gì sai sót, hãy tận hưởng thành quả của mình đi nào 🙂

Kết luận:

Tất nhiên đây chỉ là giải pháp tình thế để vẫn có thể dùng được plugin mà mình yêu thích. Hy vọng rằng tác giả của plugin sẽ sớm nâng cấp cho tương thích với WP Multi-site. Cho đến khi có bản nâng cấp, bạn đừng quên thực hiện lại các bước trên khi cập nhật phiên bản mới của Google XML Sitemap nhé.

Chúc vui !

Quảng cáo tài trợ


Việt Coding

Là một người đam mê lập trình, tôi vọc vạch đủ thứ liên quan đến lập trình cho thoả chí tò mò. Hiện làm chủ yếu ở mảng phát triển ứng dụng di động cho iOS và Android với React Native. Thỉnh thoảng vọc vạch mấy thứ liên quan đến Internet of Things như Smart Home. Đang nghịch mấy con Raspberry Pi và thấy nó cũng thú vị :)

9 Comments

Hùng · 01/07/2010 at 21:37

Dạo quanh một vòng vẫn chưa có bài nào hướng dẫn chi tiết về cách dùng wordpress 3.0 mutisite
.-= Hùng´s last blog ..Tìm sản phẩm ở clickbank để tham gia affiliate =-.

    Việt Coding · 02/07/2010 at 11:10

    Việt Coding đang triển khai Multi-site trên anhdung.info và cũng đang ghi chú lại một số điểm. Nếu có thời gian và không đụng hàng thì sẽ có bài hướng dẫn sử dụng 🙂

Mr.tỏi@wordpressviet.info · 03/07/2010 at 23:33

Hay đó bác, tại em cũng đang tính tét trên hóting thật, nhưng tự nhiên gặp lỗi này cái nản luôn, k thèm làm luôn ^^
.-= Mr.tỏi@wordpressviet.info´s last blog ..Những thủ thuật cho wp-configphp có thể bạn chưa biết =-.

    Việt Coding · 05/07/2010 at 07:04

    Vậy bắt tay vào làm liền đi chứ còn chờ gì nữa 🙂

nghethuatgiaotiep · 07/04/2011 at 00:47

Mình đã add plugin Sitemap Generator, rồi làm theo hướng dẫn tạo ra 2 file sitemap.xml va sitemap.xml.gz, chỉnh CMod để rewrite. Nhưng mà nó vẫn báo lỗi “There was a problem writing your sitemap file. Make sure the file exists and is writable”
Có cách nào hướng dẫn mình chi tiết được không?

    Việt Coding · 07/04/2011 at 16:58

    Bạn thử truy cập http://ten-domain-cua-ban.com/sitemap.xml xem có ra cái gì không ?

Cu Be · 24/04/2011 at 22:38

anh cho em hỏi, ví dụ site chính của em là abc.com. Site phụ của em có dir con là abc.com/b, nhưng domain em trỏ về abc.com/b là xyz.com khi tạo sitemap thì nó ra dạng abc.com/b/sitemap.xml ( site map của trang xyz.com). vậy có ảnh hưởng gì không ạ ? chỉnh mãi thành dạng xyz.com/sitemap mà ko đc 🙁

vankhoa · 31/05/2013 at 12:50

Deserves moderate attention
Solution is simple
Your website does not contain an XML sitemap and that can weaken your SEO.

An XML sitemap lists URLs that can be crawled and may offer other information such as how often you update, when your last update occurred and importance.

With an XML sitemap, search engines can index your website more accurately.

Although it’s been debated, we suggest that you submit an XML sitemap to Google™ Webmasters Tools.
day la loi e gap phai lam sao de khac phuc no day

Sửa lỗi “Math Comment Spam Protection” Plugin trên WordPress 3.0 — Việt Coding | CSharp, Delphi | ASP.NET, PHP, ASP, JSP | WordPress, VBulletin · 13/07/2010 at 14:28

[…] trên WordPress 3.0by Việt Coding on 13/07/2010Xin chào các bạn,Sau khi phát hiện ra lỗi không tương thích của Google XML Sitemap với WordPress 3.0 Muti-site, Việt Coding lại nhận thấy WP 3.0 “dính” thêm một lỗi nữa với Math […]

Leave a Reply to vankhoa Cancel reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax