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 328x450 Sửa lỗi không tương thích của Google XML Sitemap với WordPress 3.0 Muti site

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

google xml sitemap error 450x81 Sửa lỗi không tương thích của Google XML Sitemap với WordPress 3.0 Muti 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:

	//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;
	}

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:

	/*
	//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;
	}
	*/

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.

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

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ả icon smile Sửa lỗi không tương thích của Google XML Sitemap với WordPress 3.0 Muti site

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 icon smile Sửa lỗi không tương thích của Google XML Sitemap với WordPress 3.0 Muti site

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 !



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.

Comments

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

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

  3. 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?

  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 :(

Trackbacks

  1. [...] 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 [...]

Speak Your Mind

*