合并Google和百度sitemap插件+JS提交多form

每次更新sitemap的时候要去两个设置页面更新挺麻烦的,然后就把Google XML Sitemaps和baidu-sitemap-generator合并了,顺便改写了一下

合并插件大概分成这么几个步骤

  1. 合并设置页面
  2. 合并functions, 把Google XML插件的method函数(class)改成function, 以便能在baidu sitemap中二次调用
  3. submit的触发动作改写:
    if ($_POST["action"]=='build_xml') { build_baidu_sitemap();}改成
    if ($_POST["action"]=='build_xml') { build_baidu_sitemap();do_action("sm_rebuild");}
  4. 后续
  5. 在本地测试的时候用一开始的修改版是可以同时更新2个地图的,但是换到自己网站发现不能同时更新,于是再次改写
    思路是用新加一个form,然后把它和原有form的target都指向特定iframe, 以防止页面刷新造成动作中断, 然后写一段js让一个submit同时提交两个form

    <script>
    function submittwo(){   
    	document.getElementById("bdform").submit();  
    	document.getElementById("ggform").submit();  
    }   
    </script>  
     
    <form name="baidu_sitemap_build" id="bdform"  method="post"  target="oooo" >  
    	<input type="hidden" name="action" value="build_xml" />
    	<p class="submit"><input type="submit" class="button-primary" value="Update XML file" /></p>
    </form> 
    <form name="from2" id="ggform" action=" <?php echo wp_nonce_url($this->sg->GetBackLink() . "&sm_rebuild=true&noheader=true",'sitemap')?>" method="post" target="xxxx">  
    	<input type="button" name="tsub"  value="submit" onClick="javascript:submittwo();">  
    </form>  
    
    <iframe name="oooo"></iframe>
    <iframe name="xxxx"></iframe>

下载地址: 因为加了iframe实在太丑了, 然后我又急着去上课了, 然后也不知道你们需不需要这东西, 如果有人需要我再给下载地址吧

PS 本来只是"发插件", 最后依然沦为了"写代码"

2013-05-10更新
新的效果图:

合并Google和百度sitemap插件效果

一些废话:

  1. 使用之前请停用两个原插件, 再启用本插件, 然后前往"设置→站点地图"中更改选项
  2. 去掉了Google XML Sitemaps的广告,精简了部分文件
  3. 点击了图中那个按钮之后, 请等待两个iframe都出现了(如下图), 再离开这个页面,

20130510154210

下载地址: 这里

46 Comments

Name *

E-mail *

Website

  1. Youth.霖

    下载不了阿?

    • 小蝴蝶

      @Youth.霖 之前换主机忘了解析,现在可以下载了

  2. 张戈博客

    谷歌的sitemap.xml 和百度的xml 虽然显示不同,但是都可以兼容的吧~~ 目前用的dx-seo的地图功能,反正谷歌和百度都提交OK~

    另外,女神可以考虑下,制作一个百度开放适配&360移动适配的sitemap插件嘛~~

    只是PC页面和手机页面对应关系的sitemap,女神肯定可以手到擒来的。

    • 小蝴蝶

      @张戈博客 没有明白, 如果是同一个站点只能用一个sitemap的, 你的移动版网址和桌面版不同吗

      • 张戈博客

        @小蝴蝶 详细看下这里~~
        我不会PHP,用batch做了一个工具:http://zhangge.net/3544.html
        至于对应关系:http://zhangge.net/2556.html

        其实根本原因就是因为站点不是响应式主题,所以移动站和PC站地址不一样。
        百度和360就出了一个移动适配的功能:http://zhanzhang.baidu.com/wiki/62#01

        说的有点多。。

        • 小蝴蝶

          @张戈博客 不明觉厉,我感觉地址不同的两个站点从文件权限上来讲应该不能用插件一次更新sitemap吧

          • 张戈博客

            @小蝴蝶 这个sitemap和你理解的不一样。。的确就是2个站点的对应关系,但是并不是促进搜索引擎收录用的,而是让百度在手机端搜索,展示你的移动站点。。电脑上则展示PC站点。。目前百度和360站长平台有这个对应关系的提交功能。