当前位置:首页 > CMS教程 > WordPress > 列表

wordpress无插件生成文章TXT网站地图的方法

发布:smiling 来源: PHP粉丝网  添加日期:2015-11-11 09:48:50 浏览: 评论:0 

我们知道网站地址有利于搜索引擎的收录,wordpress有自带的xml格式的网站地图,如果我们也希望生成txt格式的地图呢?本文我们用纯代码方法来实现.

该方法不需要安装任何插件,纯代码生成.

  1. <?php 
  2. require('./wp-blog-header.php'); 
  3. header('Content-type: application/txt'); 
  4. header('HTTP/1.1 200 OK'); 
  5. $posts_to_show = 50000; // 限制最大文章数量 
  6. ?> 
  7. <?php 
  8. header("Content-type: text/txt"); 
  9. $myposts = get_posts( "numberposts=" . $posts_to_show ); 
  10. <a href="/tags.php/foreach/" target="_blank">foreach</a>( $myposts as $post ) {  
  11. //phpfensi.com 
  12. ?> 
  13. <?php the_permalink(); ?><?php echo "\n"; ?> 
  14. <?php } ?> 

将上述代码复制保存为php文件,注意使用utf-8格式,然后将其上传到你的wordpress安装根目录上.

注意:将www.admin.com改为你的网站地址。

设置伪静态

①、Nginx

编辑已存在的Nginx伪静态规则,新增如下规则后(平滑)重启nginx即可:

rewrite ^/ping.txt$ /ping.php last;

②、Apache

编辑网站根目录的 .htaccess,加入如下规则:

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

做好伪静态规则后,就可以直接访问sitemap.xml看看效果了.

最后我们输入http://www.admin.com/ping.txt就可以看到wordpress无插件纯代码生成txt格式网站地图的效果了,如果需要下载该txt文件,只需要右键另存为即可.

WordPress免插件生成完整站点地图(sitemap.xml)的php代码:

  1. <?php 
  2. require('./wp-blog-header.php'); 
  3. header("Content-type: text/xml"); 
  4. header('HTTP/1.1 200 OK'); 
  5. $posts_to_show = 1000;  
  6. echo '<?xml version="1.0" encoding="UTF-8"?>'
  7. echo '<urlset xmlns="http://www.sitema<a href="/fw/photo.html" target="_blank">ps</a>.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">' 
  8. ?> 
  9. <!-- generated-on=<?php echo get_lastpostdate('blog'); ?>--> 
  10.   <url> 
  11.       <loc><?php echo get_home_url(); ?></loc> 
  12.       <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate('Y-m-d\TH:i:s+00:00', <a href="/tags.php/strtotime/" target="_blank">strtotime</a>($ltime)); echo $ltime; ?></lastmod> 
  13.       <changefreq>daily</changefreq> 
  14.       <priority>1.0</priority> 
  15.   </url> 
  16. <?php 
  17. /* 文章页面 */  
  18. header("Content-type: text/xml"); 
  19. $myposts = get_posts( "numberposts=" . $posts_to_show ); 
  20. foreach$myposts as $post ) { ?> 
  21.   <url> 
  22.       <loc><?php the_permalink(); ?></loc> 
  23.       <lastmod><?php the_time('c') ?></lastmod> 
  24.       <changefreq>monthly</changefreq> 
  25.       <priority>0.6</priority> 
  26.   </url> 
  27. <?php } /* 文章循环结束 */ ?>   
  28. <?php 
  29. /* 单页面 */  
  30. $mypages = get_pages(); 
  31. if(count($mypages) > 0) { 
  32.     foreach($mypages as $page) { ?> 
  33.     <url> 
  34.       <loc><?php echo get_page_link($page->ID); ?></loc> 
  35.       <lastmod><?php echo str_replace(" ","T",get_page($page->ID)->post_modified); ?>+00:00</lastmod> 
  36.       <changefreq>weekly</changefreq> 
  37.       <priority>0.6</priority> 
  38.   </url> 
  39. <?php }} /* 单页面循环结束 */ ?>  
  40. <?php 
  41. /* 博客分类 */  
  42. $terms = get_terms('category''orderby=name&hide_empty=0' ); 
  43. $count = count($terms); 
  44. if($count > 0){ 
  45. foreach ($terms as $term) { ?> 
  46.     <url> 
  47.       <loc><?php echo get_term_link($term$term->slug); ?></loc> 
  48.       <changefreq>weekly</changefreq> 
  49.       <priority>0.8</priority> 
  50.   </url> 
  51. <?php }} /* 分类循环结束 */?>  
  52. <?php 
  53.  /* 标签(可选) */ 
  54. $tags = get_terms("post_tag"); 
  55. foreach ( $tags as $key => $tag ) { 
  56.     $link = get_term_link( intval($tag->term_id), "post_tag" ); 
  57.          if ( is_wp_error( $link ) ) 
  58.           return false; 
  59.           $tags$key ]->link = $link
  60. ?> 
  61.  <url> 
  62.       <loc><?php echo $link ?></loc> 
  63.       <changefreq>monthly</changefreq> 
  64.       <priority>0.4</priority> 
  65.   </url> 
  66. <?php  } /* 标签循环结束 */ ?>  
  67. </urlset> 

wordpress非插件实现xml格式网站地图.

  1. <?php 
  2. require('./wp-blog-header.php'); 
  3. header("Content-type: text/xml"); 
  4. header('HTTP/1.1 200 OK'); 
  5. $posts_to_show = 1000; // 获取文章数量 
  6. echo '<?xml version="1.0" encoding="UTF-8"?>'
  7. echo '<urlset xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" rel="external nofollow" >http://www.w3.org/2001/XMLSchema-instance</a>" xmlns="<a href="http://www.sitemaps.org/schemas/sitemap/0.9" rel="external nofollow" rel="external nofollow" >http://www.sitemaps.org/schemas/sitemap/0.9</a>" 
  8. xsi:schemaLocation="<a href="http://www.sitemaps.org/schemas/sitemap/0.9" rel="external nofollow" rel="external nofollow" >http://www.sitemaps.org/schemas/sitemap/0.9</a> <a href="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'" rel="external nofollow" >http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'</a>; 
  9. ?> 
  10. <!-- generated-on=<?php echo get_lastpostdate('blog'); ?>--> 
  11. <url> 
  12. <loc>http://localhost/</loc> 
  13. <lastmod><?php echo get_lastpostdate('blog'); ?></lastmod> 
  14. <changefreq>daily</changefreq> 
  15. <priority>1.0</priority> 
  16. </url> 
  17. <?php 
  18. header("Content-type: text/xml"); 
  19. $myposts = get_posts( "numberposts=" . $posts_to_show ); 
  20. foreach$myposts as $post ) { ?> 
  21. <url> 
  22. <loc><?php the_permalink(); ?></loc> 
  23. <lastmod><?php the_time('c') ?></lastmod> 
  24. <changefreq>monthly</changefreq> 
  25. <priority>0.6</priority> 
  26. </url> 
  27. <?php } // end foreach ?> 
  28. </urlset> 

复制上面代码为xmlmap.php文件并传至网站根目录:

http://localhost/xmlmap.php

Tags: wordpress无插件 TXT网站地图

分享到: