Home > CMS Tutorial > WordPress > How to add a sitemap in WordPress

How to add a sitemap in WordPress

藏色散人
Release: 2021-01-19 16:29:48
forward
2792 people have browsed it

下面由WordPress教程栏目给大家介绍WordPress增加网站地图的方法,希望对需要的朋友有所帮助!

How to add a sitemap in WordPress

先说一句口号:能用代码解决的,坚决不用插件!

WordPress的网站地图用一般的生成工具,生成之后都不能用,比如织梦我常用sitemapx,结果放在WordPress就出错了。

WordPress生成网站地图的插件也有很多,大家可以自行百度,这里主要是讲利用代码生成。

1.先将以下代码将保存为 sitemap.php,传到网站根目录。 

<?php
require(&#39;./wp-blog-header.php&#39;);
header("Content-type: text/xml");
header(&#39;HTTP/1.1 200 OK&#39;);
$posts_to_show = 1000; 
echo &#39;<?xml version="1.0" encoding="UTF-8"?>&#39;;
echo &#39;<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">&#39;
?>
<!-- generated-on=<?php echo get_lastpostdate(&#39;blog&#39;); ?> Diy By 独立站大学(http://dulizhandaxue.com)-->
  <url>
      <loc><?php echo get_home_url(); ?></loc>
      <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate(&#39;Y-m-d\TH:i:s+00:00&#39;, 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(&#39;c&#39;) ?></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(&#39;category&#39;, &#39;orderby=name&hide_empty=0&#39; );
$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>
Copy after login

2.编辑 Nginx 伪静态规则,新增如下规则:

rewrite ^/sitemap.xml$ /sitemap.php last;
Copy after login

3.编辑网站根目录的.htaccess(如果没有则新建为txt文档),加入如下规则:

RewriteRule ^(sitemap)\.xml$ $1.php
Copy after login

直接访问网站域名+sitemap.xml即可。

The above is the detailed content of How to add a sitemap in WordPress. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template