昨天在对自己的一些项目网站检查维护的时候发现好几个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-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
脚本参考内容如下:
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小时内绝对处理)