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



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 !

About Author

Tuấn Anh

Là một người đam mê lập trình, hiện tập trung mảng phát triển ứng dụng web dựa trên nền tảng của WordPress. Đồng thời, nhằm đạt sự trọn vẹn trong công việc freelance, tôi đang học đồ hoạ, để có thể tự mình thiết kế layout, logo và những thứ khác liên quan đến đồ họa. Mục tiêu vài năm tới: Tôi sẽ là Full Web Developer = Graphics Design + Coding. Vietcoding Blog viết về WordPress, chia sẻ kinh nghiệm, mẹo vặt, viết plugin, làm theme và ôm ấp ý tưởng viết một Web Application Framework dựa trên WordPress. Đồ hoạ là chuyên mục đang được chuẩn bị trong tương lai.



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

  1. Hùng says:

    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 =-.

    1. 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 🙂

  2. Mr.tỏi@wordpressviet.info says:

    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 =-.

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

  3. nghethuatgiaotiep says:

    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?

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

  4. Cu Be says:

    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 🙁

  5. vankhoa says:

    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


Got Something To Say:

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

GENESIS FRAMEWORK