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

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

wordpress网站如何自动生成制作sitemap.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-dTH: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

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

好牛新坐标

发布者:知识学院,火焰兔收录并登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。https://huoyantu.com/2540.html

版权声明:

  • 火焰兔遵守相关法律法规,由于本站资源全部来源于网络程序/用户发布/投稿,故量太大无法一一准确核实资源侵权的真实性;
  • 出于传递信息之目的,故火焰兔可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
  • 因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
  • 无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式 《要求删除或断开链接侵权网络内容的通知》

    国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明:http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
    请按照此通知格式填写(或提供具有法律效应且证据链完整的证明)发至本站的邮箱 huoyantu@qq.com
    (收到核实后 24小时内绝对处理)
  • (0)
    知识学院的头像知识学院作者
    上一篇 2020年9月13日 下午10:55
    下一篇 2021年1月8日 上午12:33

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    火焰兔欢迎您!