1. 火焰兔首页
  2. IT技术

wordpress网站如何自动生成制作sitemap.xml网站地图

昨天在对自己的一些项目网站检查维护的时候发现好几个wp网站的xml地图都没了,经过检查后确认是之前用的xml地图生成插件失效了 ,后边折腾了半天后发现使用代码方式实现出来简洁又快速。今天来记录下来以免以后忘记。

网站地图称英文名称为sitemap,又被称为站点地图,在wordpress建站优化过程中是不可或缺的步骤,站点地图的主要作用为指导搜索引擎抓取网站页面,搜索引擎蜘蛛非常喜欢根据地图的树型结构进行爬行抓取,所以对于wordpress网站,我们需要一个结构合理的网站地图页面即sitemap。

第一步:在你的网站程序更目录下新建一个文件  sitemap.php文件

内容如下:

<?php 
require('./wp-blog-header.php'); 
header("Content-type: text/xml"); 
header('HTTP/1.1 200 OK'); 
echo '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'; 
?> 
<!-- generated-on=<?php echo get_lastpostdate('blog'); ?>--> 
<url>
	<loc><?php echo get_home_url(); ?></loc>
	<lastmod><?php echo gmdate('Y-m-d\TH:i:s+00:00', strtotime(get_lastpostmodified('GMT'))); ?></lastmod>
	<changefreq>daily</changefreq>
	<priority>1.0</priority>
</url>
<?php
 
 
// 文章
$posts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
    <url>
        <loc><?php echo get_permalink($post->ID); ?></loc>
        <lastmod><?php echo str_replace(" ", "T", get_post($post->ID)->post_modified); ?>+00:00</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.6</priority>
    </url>
<?php 
endforeach;
 
 
// 页面
$pages = get_pages('numberposts=-1&orderby=post_date&order=DESC');
foreach($pages 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 
endforeach;
 
 
// 分类
$categorys = get_terms('category', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
    <url>
        <loc><?php echo get_term_link($category, $category->slug); ?></loc>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
    </url>
<?php 
endforeach;
 
 
// 标签
$tags = get_terms('post_tag', 'orderby=name&hide_empty=0');
foreach ($tags as $tag) : 
?>
    <url>
        <loc><?php echo get_term_link($tag, $tag->slug); ?></loc>
        <changefreq>monthly</changefreq>
        <priority>0.4</priority>
    </url>
<?php 
endforeach;
?>
</urlset>

以上代码如果你自己没有什么改动的只要你是wp程序的网站都可以直接使用。通用的,当然你自己要有什么改动的话可以根据自己情况进行调整。

 

第二步:设置伪静态

nginx添加如下伪静态规则:

rewrite^/sitemap.xml$/sitemap.php last;

apache添加如下伪静态规则:

RewriteEngine On
RewriteBase /
RewriteRule ^sitemap.xml$ xmlmap.php

第三步:通过宝塔设置定时任务 生成xml

wordpress网站如何自动生成制作sitemap.xml网站地图

脚本参考内容如下:

wget -O /www/wwwroot/huoyantu.com/sitemap.xml https://huoyantu.com/sitemap.php>/dev/null 2>&1

注:根据自己的路径情况进行更改 以及自己的网址修改 就行了

发布者:火焰兔,如果对火焰兔感兴趣,可以添加微信:huoyantu7 转转请注明出处:https://huoyantu.com/2540.html