用代码给wordpress添加一个HTML网站地图

作者: 郑元水 分类: Wordpress 发布时间: 2013-07-19 08:13 ė 12,549 6 没有评论

常见的网站地图有两种,一种是XML格式的地图,另一种是HTML格式地图。XML格式的网站地图是给搜索引擎蜘蛛看的,而HTML网站地图是给用户看的,可以展现自己博客的所有文章和所有页面,能够增加网站的用户体验。在前面的一篇文章中,有介绍过wordpress网站地图的添加方法,是用wordpress插件来实现的,今天介绍的网站地图添加方法是用代码来实现的。

1、首先将所用主题的page.php复制一份,重命名为sitemap.php.

2、删除sitemap.php开头的所有注释,也就是 /* 与 */ 之间的内容。如果没有注释可以忽略此步骤。

3、将sitemap..php中的第一个<?php改成

  1. <?php  
  2. /* 
  3.  * Template Name: 网站地图 
  4.  * @author: 郑元水   
  5.  * @Blog  : http://www.zhengyuanshui.com 
  6.  */   

4、将<?php the_content(); ?>改成

  1. <div class="myArchive">  
  2. <ul>  
  3. <?php  
  4. /** 
  5.  * WordPress网站地图页面 
  6.  * 作者:郑元水 
  7.  * 博客:http://www.zhengyuanshui.com 
  8.  * 最后修改:2013年7月07日 
  9.  */  
  10.     $categoryPosts = $wpdb->get_results(" 
  11.     SELECT post_title, ID, post_name, slug, wp_terms.term_id AS catID, wp_terms.name AS categoryname 
  12.     FROM wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms 
  13.     WHERE wp_posts.ID = wp_term_relationships.object_id 
  14.     AND wp_terms.term_id = wp_term_taxonomy.term_id 
  15.     AND wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id 
  16.     AND wp_term_taxonomy.taxonomy = 'category' 
  17.     AND wp_posts.post_status = 'publish' 
  18.     AND wp_posts.post_type = 'post' 
  19.     ORDER BY wp_terms.term_id, wp_posts.post_date DESC");  
  20.   
  21.     $postID = 0;  
  22.     if ( $categoryPosts ) :  
  23.         $category = $categoryPosts[0]->catID;  
  24.         foreach ($categoryPosts as $key => $mypost) :  
  25.             if($postID == 0) {  
  26.                 echo '<li><strong>分类:</strong> <a title="'.$mypost->categoryname.'" href="'.get_category_link($mypost->catID).'">'.$mypost->categoryname."</a>\n";  
  27.                 echo '<ul>';  
  28.             }  
  29.              
  30.             if($category == $mypost->catID) {            
  31. ?>  
  32.     <li><a title="<?php echo $mypost->post_title; ?>" href="<?php echo get_permalink( $mypost->ID ); ?>" target="_blank"><?php echo $mypost->post_title; ?></a></li>  
  33. <?php  
  34.                 $category = $mypost->catID;  
  35.                 $postID++;  
  36.             }  
  37.             else {  
  38.                 echo "</ul>\n</li>";  
  39.                 echo '<li><strong>分类:</strong> <a title="'.$mypost->categoryname.'" href="'.get_category_link($mypost->catID).'">'.$mypost->categoryname."</a>\n";  
  40.                 echo '<ul>';  
  41. ?>  
  42.     <li><a title="<?php echo $mypost->post_title; ?>" href="<?php echo get_permalink( $mypost->ID ); ?>"><?php echo $mypost->post_title; ?></a></li>  
  43. <?php  
  44.                 $category = $mypost->catID;  
  45.                 $postID = 1;  
  46.             }  
  47.         endforeach;  
  48.     endif;  
  49.     echo "</ul>\n</li>";  
  50. ?>  
  51.   
  52. <li><strong>页面</strong>  
  53. <ul>  
  54. <?php  
  55.     // 读取所有页面  
  56.     $mypages = $wpdb->get_results(" 
  57.         SELECT post_title, post_name, ID 
  58.         FROM {$wpdb->prefix}posts 
  59.         WHERE post_status = 'publish' 
  60.         AND post_type = 'page'");  
  61.   
  62.     if ( $mypages ) :  
  63.         foreach ($mypages as $mypage) :  
  64. ?>  
  65.     <li><a title="<?php echo $mypage->post_title; ?>" href="<?php echo get_permalink( $mypage->ID ); ?>" target="_blank"><?php echo $mypage->post_title; ?></a></li>  
  66.     <?php endforeachecho "</ul>\n</li>"endif; ?>  
  67. </ul>  
  68. <p><a href="http://www.zhengyuanshui.com/sitemap.xml">查看 sitemap.xml</a></p>  
  69. </div>        

最后别忘了将http://www.zhengyuanshui.com/sitemap.xml,改成自己网站地址的链接地址就可以。修改完以后用UTF-8保存,防止乱码。

5、在网站主题中的style.css中添加以下的代码

  1. .myArchive {  
  2.     line-height:18px;  
  3.     margin:1.5em 0;  
  4.     color:#555555;  
  5.     font-size:14px;  
  6. }  
  7. .myArchive h2 {  
  8.     font-size:16px;  
  9.     margin:0 0 10px;  
  10.     font-weight:bold;  
  11. }  
  12. .myArchive ul {  
  13.     line-height:21px;  
  14.     padding:0 0 0 2em;  
  15. }  
  16. .myArchive ul li {  
  17.     background:none;  
  18.     list-style-type:disc;  
  19.     margin:0;  
  20.     padding-left:10px;  
  21. }  
  22. .myArchive a {  
  23.     color:#2970A6;  
  24.     outline:medium none;  
  25.     text-decoration:none;  
  26. }  
  27. .myArchive a:hover {  
  28.     text-decoration:underline;  
  29. }  
  30. .myArchive ul li ul {  
  31.     margin:10px 0;  
  32. }  
  33. .myArchive ul li ul li {  
  34.     list-style-type:circle;  
  35. }  

6、进入wordpress后台,创建新的页面,起名为网站地图,(名字随便)内容不需要填写。点击快速编辑按钮,选择模板--网站地图,这样wordpress网站地图就制作出来了。

本文章转自于:露兜博客

本文出自郑元水博客,转载时请注明出处及相应链接。

本文永久链接: http://www.zhengyuanshui.com/796.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

微信扫一扫,添加150505055

郑元水