摘星廓(http://www.255star.com)全站已换成自适配模板,大家在电脑和手机都可以顺畅浏览本站内容。

wordpress怎样免插件创建百度移动sitemap,如何制作xml网站地图

二五杂谈 aty25 1258次浏览 0个评论

其实我们都知道wordpress有很多插件,也不乏可以直接用插件生成xml格式sitemap的。我之前就用过Baidu Sitemap Generator和Google XML Sitemaps这2个插件。Baidu Sitemap Generator可以创建一份html格式的内链网站地图和一份xml格式的网站地图,其实百度站长后台需要的是xml格式的网站地图,这个插件默认是有1000条的数量限制,可以修改更多。这个插件停更很久了,我发现我的网站地图也被定格在大半年前,这也是我要放弃这个插件的原因。Google XML Sitemaps是生成XML格式的网站地图,文件后缀是sitemap.backup.xml,也有可能会因为数据多而生成压缩文件形式的网站地图,是建议数据内容较多的网站可以使用这个插件,数据少的还是自己用代码创建好。

 

自适应网站创建百度移动sitemap

那么wordpress怎样免插件创建sitemap.xml呢?首先要明确一下,本人的网站是使用了自适应模板的,在pc端和移动端都是同一个url。而根据百度官方的说明,自适应网站的网站地图也会分pc和移动,区别是移动sitemap还需要加多一段代码<mobile:mobile type=”pc,mobile”/>。下面来看看pc端和移动端的sitemap.xml怎样免插件创建。

pc端sitemap.xml

1.新建一个sitemap.php至网站根目录下,复制如下内容:

<?php
require(‘./wp-blog-header.php’);
header(“Content-type: text/xml”);
header(‘HTTP/1.1 200 OK’);
$posts_to_show = 10000; // 获取文章数量
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;
echo ‘<urlset xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9&#8243;
xsi:schemaLocation=”http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd”>&#8217;;
?>
<!– generated-on=<?php echo get_lastpostdate(‘blog’); ?>–>
<url>
<loc><?php echo get_home_url(); ?></loc>
<lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate(‘Y-m-d\TH:i:s+00:00′, strtotime($ltime)); echo $ltime; ?></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<?php
/* 文章页面 */
header(“Content-type: text/xml”);
$myposts = get_posts( “numberposts=” . $posts_to_show );
foreach( $myposts as $post ) { ?>
<url>
<loc><?php the_permalink(); ?></loc>
<lastmod><?php the_time(‘c’) ?></lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<?php } /* 文章循环结束 */ ?>
<?php
/* 单页面 */
$mypages = get_pages();
if(count($mypages) > 0) {
foreach($mypages as $page) { ?>
<url>
<loc><?php echo get_page_link($page->ID); ?></loc>
<lastmod><?php echo str_replace(” “,”T”,get_page($page->ID)->post_modified); ?>+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<?php }} /* 单页面循环结束 */ ?>
<?php
/* 博客分类 */
$terms = get_terms(‘category’, ‘orderby=name&hide_empty=0′ );
$count = count($terms);
if($count > 0){
foreach ($terms as $term) { ?>
<url>
<loc><?php echo get_term_link($term, $term->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php }} /* 分类循环结束 */?>
<?php
/* 标签(可选) */
$tags = get_terms(“post_tag”);
foreach ( $tags as $key => $tag ) {
$link = get_term_link( intval($tag->term_id), “post_tag” );
if ( is_wp_error( $link ) )
return false;
$tags[ $key ]->link = $link;
?>
<url>
<loc><?php echo $link ?></loc>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<?php } /* 标签循环结束 */ ?>
</urlset>

 

2.设置伪静态

wordpress使用linux系统基本都是Apache。编辑网站根目录的 .htaccess ,加入如下规则:

RewriteRule ^(sitemap)\.xml$ $1.php

注意:不要写在wordpress固定连接伪静态设置或者其他301设置的代码里,建议放在第一行就可以了。

最后,打开http://**.**.com/sitemap.xml大功告成。

 

移动端sitemap.xml

方法大同小异,只是加多了<mobile:mobile type=”pc,mobile”/>,可复制如下内容:

<?php
require(‘./wp-blog-header.php’);
header(“Content-type: text/xml”);
header(‘HTTP/1.1 200 OK’);
$posts_to_show = 10000;
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;
echo ‘<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9&#8243; xmlns:mobile=”http://www.baidu.com/schemas/sitemap-mobile/1/”>&#8217;
?>
<!– generated-on=<?php echo get_lastpostdate(‘blog’); ?>–>
<url>
<loc><?php echo get_home_url(); ?></loc>
<mobile:mobile type=”pc,mobile”/>
<lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate(‘Y-m-d\TH:i:s+00:00′, strtotime($ltime)); echo $ltime; ?></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<?php
/* 文章页面 */
header(“Content-type: text/xml”);
$myposts = get_posts( “numberposts=” . $posts_to_show );
foreach( $myposts as $post ) { ?>
<url>
<loc><?php the_permalink(); ?></loc>
<mobile:mobile type=”pc,mobile”/>
<lastmod><?php the_time(‘c’) ?></lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<?php } /* 文章循环结束 */ ?>
<?php
/* 单页面 */
$mypages = get_pages();
if(count($mypages) > 0) {
foreach($mypages as $page) { ?>
<url>
<loc><?php echo get_page_link($page->ID); ?></loc>
<mobile:mobile type=”pc,mobile”/>
<lastmod><?php echo str_replace(” “,”T”,get_page($page->ID)->post_modified); ?>+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<?php }} /* 单页面循环结束 */ ?>
<?php
/* 博客分类 */
$terms = get_terms(‘category’, ‘orderby=name&hide_empty=0′ );
$count = count($terms);
if($count > 0){
foreach ($terms as $term) { ?>
<url>
<loc><?php echo get_term_link($term, $term->slug); ?></loc>
<mobile:mobile type=”pc,mobile”/>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php }} /* 分类循环结束 */?>
<?php
/* 标签(可选) */
$tags = get_terms(“post_tag”);
foreach ( $tags as $key => $tag ) {
$link = get_term_link( intval($tag->term_id), “post_tag” );
if ( is_wp_error( $link ) )
return false;
$tags[ $key ]->link = $link;
?>
<url>
<loc><?php echo $link ?></loc>
<mobile:mobile type=”pc,mobile”/>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<?php } /* 标签循环结束 */ ?>
</urlset>

保存为m_sitemap.php(只要是不同pc端的命名就行),传至根目录。

2.伪静态设置,加入以下表达式:

RewriteRule ^(m_sitemap)\.xml$ $1.php

 

ps:还有一点很重要的要提醒就是,如果有使用过Baidu Sitemap Generator和Google XML Sitemaps这2个插件的,一定要先停用并且把根目录中这2个插件生成的文件删掉,以上这是才能生效,否则各种出错,本人也是被这个折腾死了。

 

相关阅读:wordprss伪静态化动态地址被收录怎么办

 


摘星廓 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明wordpress怎样免插件创建百度移动sitemap,如何制作xml网站地图
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址