今天是:2025年4月7日 星期一
记住用户名密码
站点地图(sitemap.xml)的作用,相信站长们都有所了解,我就不献宝了。而免插件生成 sitemap.xml,网络上也早就有了纯代码生成的方法。
今天让这个代码更加完善,可以同时生成首页、文章、单页面、分类和标签的 sitemap!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <?php require ( './wp-blog-header.php' ); header( "Content-type: text/xml" ); header( 'HTTP/1.1 200 OK' ); $posts_to_show = 1000; echo '<?xml version="1.0" encoding="UTF-8"?>' ; echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">' ?> <url> <loc><?php echo get_home_url(); ?></loc> <lastmod><?php $ltime = get_lastpostmodified(GMT); $ltime = gmdate ( 'Y-m-dTH:i:s+00:00' , strtotime ( $ltime )); echo $ltime ; ?></lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <?php /* 文章页面 */ $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> |
将以上代码保存为 sitemap.php,传到网站根目录。
rewrite ^/sitemap.xml$ /sitemap.php last;
Apache
编辑网站根目录的 .htaccess ,加入如下规则:
RewriteRule ^(sitemap).xml$ $1.php
好伪静态规则后,就可以直接访问 sitemap.xml 看看效果了
目前有 0 条留言 其中:访客:0 条, 博主:0 条