前言

刚才看了下网站还没有SiteMap页面,也没有加rss链接,反正博客从建立以来到现在几个月了,连个首页快照都没有,只收录了两个页面,我就想着折腾下SiteMap吧。

虽然博客目前在BAE,用了插件也不会怎么拖累网速,但是我还是习惯不用插件,这是我的习惯了。所以…搜遍网络,竟然没有无插件SiteMap的教程,有也极少,可行度低之又低。

于是就用我的archives存档页面的代码改成SiteMap页面吧。

用这个方法只需新建个单页面,不用担心它怎么生成,它会动态加载的!

哈哈,我发现我是个免插件狂了。目前就用了两个插件,一个BCS(百度存储插件),一个关键词内链插件。

思路

比较简单,用单页面输出文章和分类/单页面列表就行了。新建个文件,复制以下代码,然后后台新建页面选择“站点地图”模版就行了。

代码:

<?php
/**
@package WordPress
Template Name: 站点地图
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=<?php bloginfo( 'charset' ); ?>" />
<title>站点地图 - <?php bloginfo('name'); ?></title>
<meta name="keywords" content="站点地图,<?php bloginfo('name'); ?>" />
<meta name="copyright" content="<?php bloginfo('name'); ?>" />
<link rel="canonical" href="<?php echo get_permalink(); ?>" />
<style type="text/css">
body {font-family: Verdana;FONT-SIZE: 12px;MARGIN: 0;color: #000000;background: #ffffff;}
img {border:0;}
li {margin-top: 8px;}
.page {padding: 4px; border-top: 1px #EEEEEE solid}
.author {background-color:#EEEEFF; padding: 6px; border-top: 1px #ddddee solid}
#nav, #content, #footer {padding: 8px; border: 1px solid #EEEEEE; clear: both; width: 95%; margin: auto; margin-top: 10px;}
</style>
</head>
<body vlink="#333333" link="#333333">
<h2 style="text-align: center; margin-top: 20px"><?php bloginfo('name'); ?>'s SiteMap </h2>
<center></center>
<div id="nav"><a href="<?php bloginfo('url'); ?>/"><strong><?php bloginfo('name'); ?></strong></a> &raquo; <a href="<?php echo get_permalink(); ?>">站点地图</a></div>
<div id="content">
<h3>最新文章</h3>
<ul>
<?php
$previous_year = $year = 0;
$previous_month = $month = 0;
$ul_open = false;

$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');

foreach($myposts as $post) :
?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<div id="content">
<li class="categories">分类目录<ul>
<?php wp_list_categories('title_li='); ?>
</ul></li>
</div>
<div id="content">
<li class="categories">单页面</li>
<?php wp_page_menu( $args ); ?>
</div>
<div id="footer">查看博客首页: <strong><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></strong></div><br />
<center>
<div style="text-algin: center; font-size: 11px">Latest Update: <?php $last = $wpdb->get_results("SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' OR post_type = 'page') AND (post_status = 'publish' OR post_status = 'private')");$last = date('Y-m-d G:i:s', strtotime($last[0]->MAX_m));echo $last; ?><br /><br /></div>
</center>
<center>
<div style="text-algin: center; font-size: 11px">Powered by <strong><a href="http://blog.kilvn.com/wordpress-no-plugins-sitemap/" target="_blank">免插件SiteMap</a></strong>&nbsp;
&copy; <?php echo date('Y'); ?> <a href="<?php bloginfo('url');?>/" style="cursor:help"><?php bloginfo('name');?></a> 版权所有.<br /><br /></div>
</center>
</body>
</html>

里面包含了CSS样式,你就不用管了。你只需要新建个页面(比如SiteMap.php)保存这段代码,在后台新建单页面,选择“站点地图”模版。

百度SiteMap和谷歌SiteMap都可以用这些代码做。

是不是很简单呢!如果你也对插件深恶痛觉,那就赶快试试吧,然后你的SiteMap插件就可以下岗了~

演示

快去我的SiteMap页面看看效果吧: https://mrju.cn/SiteMap

Mr.Ju转载于东子的文章:免插件实现wordpress的(百度,谷歌)SiteMap页面