怎么在 WordPress MU 使用 XML Sitemap 插件

如果你是一位认真的博客主人,那么你就会象许许多多其他认真的博主一样十分关心自己博客的曝光度。换句话说,就是希望自己的博客在成千上万的博客中脱颖而出。当然啊,这就包括能使自己博客在搜索引擎中的结果页里往前靠的网站优化。这种行为用时髦的词来讲就是 SEO。许多拥有 WordPress 的博主们就想尽办法在 WP 上安装一些插件来实现这些 SEO 的可能。其中一个工具就是 Google (XML) Sitemaps Generator for WordPress,它可以让博主们轻松地生成各种搜索引擎包括Google机器人能读的XML SiteMap。从WP官方插件下载网站来看,现在用它的人还不少。你若有兴趣而且你的博客又是 WordPress 单用户版本,可以到该插件的作者网页上直接查看下载及使用说明。

我这里想要说的是针对那些安装了 WordPress MU 多用户版的博主们。由于默认的 XML Sitemaps Generator (版本号 3.0.3) 插件代码并不是面向 WordPress MU的,就算你成功地安装了 XML Sitemaps Generator,生成的也是首博客的 Sitemap,而不能为所有其他的分博客进行 Sitemap 生成。

我也是今天才发现这个问题,原来自己自认为生成了的各种博客的 sitemap 实际上指向的都是自己的根目录上的主博客,即 http://lichao.net/blog/…. 的sitemap 讯息。本来可以放弃这个插件的,不过不服输的本人还是仔细研究了一些这个插件的源码,在稍稍做一改动后竟然能够顺利地将这个插件应用到我的 WordPress MU 所有博客站上来了。高兴,特发帖分享一把。


总结一下,可以将我几天琢磨的分成三个注意点步骤。

一、修改源代码

首先当然是到插件网站去下载最新版本的 Google (XML) Sitemaps Generator for WordPress (version 3.0.3) 的压缩文件。解压后会有一个 google-sitemap-generator 文件夹。别看里面文件挺多的,实际上管用的也就是 sitemap.php 和 sitempa.xsl 这两个文件。

要想这个插件能在 WordPress 里使用,用你的代码编辑工具打开 sitemap.php 文件,然后找到里面的一个函数 function GetBackLink()。屏蔽掉最后的一行代码 return $_SERVER[‘PHP_SELF’] . “?page=” . $page; 。然后加入两行这样的代码:
$path = get_option(‘siteurl’) . $_SERVER[‘PHP_SELF’] . “?page=” . $page;
return $path;

所以最后的代码就成为如下格式。

function GetBackLink() {
$page = basename(__FILE__);
if(isset($_GET[‘page’]) && !empty($_GET[‘page’])) {
$page = preg_replace(‘[^a-zA-Z0-9\.\_\-]’,”,$_GET[‘page’]);
}
//return $_SERVER[‘PHP_SELF’] . “?page=” . $page;
$path = get_option(‘siteurl’) . $_SERVER[‘PHP_SELF’] . “?page=” . $page;
return $path;
}

二、上传到 mu-plugins 目录里去

修改完代码后,保存这个文件。这时,你可以上传到 WordPress MU 的 plugins 子目录里去。但是,我不是很愿意到每个子博客里去一个一个地激活启用,所以我就将它上传到了我的 /wp-content/mu-plugins 目录里去。这个不是必须的,你自己可以决定哪个目录更适合你。

如果是上传到 mu-plugins 目录的话,而且又不愿上传太多的文件,你就可以上传 sitemap.php 和 sitemap.xsl 这两个文件。注意:请将文件直接上传到 mu-plugins 的根目录里,而不要上传 google-sitemap-generator 这个多余的文件夹。

三、设置上的不同

上传成功后,你就可以到你的管理后台,然后到 Options 设置,你会发现那里多了一个 XML-Sitemap 的选项。在设置各个博客的站点地图时,你可以参照该插件适用于单用户版本WP的使用说明。

不同部分是:

  1. Advanced Options 高级设置 处,找到这行“Include a XSLT stylesheet: Use Default (Full or relative URL to your .xsl file)” 一定要填写你的 sitemap.xsl 的正确位置。如 http://youdomain.com/wp-content/mu-plugins/sitemap.xsl 如果你将那个文件放到 mu-plugins 子目录里的话。这里,不管是哪个子博客站,最好都填写一样的。
  2. Location of your sitemap file 你的站点地图文件的位置 处,最好使用第二个选项 Custom Location 定制位置,而且要将你不同的博客的站点地图文件名取成不同的文件名。如我在我的 http://lichao.net/weblog 博客设置里,我的sitemap file name 就取成了 sitemap_weblog.xml, 那么它的完整URL链接就应该填成 http://lichao.net/sitemap_weblog.xml。注意在完整URL这里不要出现 weblog 字样,因为这时是在找实实在在的文件,那个 rewrite-mode 是不起作用的。
  3. 做完这些,保存你的设置,然后开始生成 build or re-build 你的 sitemap 文件吧。

35 Responses to “怎么在 WordPress MU 使用 XML Sitemap 插件”

  1. 逍遥小妖

    最好能直接把文件生成到/wp-content/blogs.dir/blogID/files/下面,然后再在.htaccess文件里做一个跳转……

    [Reply]

    超凡不脱俗 于 February 9th, 2008 回复:

    你是说将 sitemap.xml 文件生成在/wp-content/blogs.dir/blogID/files/下面?不过,我倾向于将站点地图文件放到网站的根目录上以便搜索引擎的索引(虽然可以在.htaccess做转向),而且我的/wp-content/blogs.dir/blogID/files/里都是供下载的文件,并已经有.htaccess文件来防止直接调用里面的文件了。

    [Reply]

  2. 逍遥小妖

    主要是因为我不可能告诉每个用户在设置上进行变更,大多数人都是直接启用然后直接用了……
    如果将默认地址改成生成在/wp-content/blogs.dir/blogID/files/下就不用用户自己设置了……

    [Reply]

  3. Torrent » Blog Archive » WordPress MU 上安装的插件

    […] Google XML Sitemaps     3.0.3     This plugin will generate a sitemaps.org compatible sitemap of your WordPress blog which is supported by Ask.com, Google, MSN Search and YAHOO. Configuration Page 作者:Arne Brachhold. 这个插件已经在上一篇文章里有了详细介绍了,就不罗嗦了。 […]

  4. Betty

    多谢多谢~
    这个问题我在英文站上找了好久都没找到完美的解决方法,结果在你这里找到了~

    [Reply]

    超凡不脱俗 于 October 15th, 2008 回复:

    hoho, I should have translated it into English ~~

    [Reply]

  5. Betty

    呵呵,你真的应该翻成英文的
    这有一篇英文的办法,比你的办法麻烦一万倍:http://www.richardpalace.com/2008/06/25/google-sitemap-for-wordpress-mu-plugin-1513101

    [Reply]

  6. konoha

    请教一下,我下载的最新版本Version: 3.1.0.1,其中找不到function GetBackLink()该怎么办?

    [Reply]

  7. Wordpress MU的推荐插件 | First Principles

    […] 3,google sitemap,生成符合google格式的xml网站地图,本来这个插件是不支持MU的,但是参考了超凡博俗的办法,简单方便,可以在MU下完美使用了,推荐 4,wp related posts,生成相关文章的插件,扔到mu-plugins下面就可以直接用,很不错。 […]

  8. jch

    哇。。。博主果然厉害,我现在一直在找解决这个问题的方法
    终于找到一个了,试一下先!

    [Reply]

  9. Leland Petruska

    Valuable information and excellent design you got here! I would like to many thanks for sharing your thoughts and time into the stuff you blog post!! Thumbs up! I just hope to have understood this the way it was meant. My kindest regards, Cherry.

    [Reply]

  10. Kelley Cimiano

    Highly rated post. I learn something completely new on totally different blogs everyday. Deciding on one . stimulating to learn the paper content material from different writers and study a little bit one thing from their website. I’d like to apply sure of this content material on my blog you’re mind. Natually I’ll give a hyperlink right here we are at your internet-site. Recognize your sharing.

    [Reply]

  11. Przeprowadzka

    What i do not realize is actually how you are not actually much more well-liked than you might be now. You are very intelligent. You realize therefore significantly relating to this subject, produced me personally consider it from so many varied angles. Its like men and women aren’t fascinated unless it is one thing to do with Lady gaga! Your own stuffs excellent. Always maintain it up!

    [Reply]

  12. anmode om dit eget rep allerfé…¶rste

    This essentially solved my problem, thanks!

    [Reply]

  13. camisetas de futbol baratas 2015

    He sido surf en línea mayor que tres 3 horas en estos días , sin embargo,
    nunca encontrado llame la atención artículo como el tuyo .
    Es bastante pena suficiente suficiente para mí .

    En mi opinión , propietarios del sitio justo materiales contenidos como lo hiciste , el Internet puede ser mucho más
    útil que nunca.
    \

    [Reply]

Leave a Reply

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