宝塔控制面板用脚本每天自动生成WordPress网站地图(Sitemap.Xml)的方法

[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!

用过Wordpress的朋友都知道,Wordpress没有生成地图的功能,不过我们可以改造,具体请看我站内文章写过; WordPress免插件实现sitemap站点地图xml和html两个版本还写过 WordPress免插件生成完整sitemap(站点地图)的php代码这两篇文章,按照那篇都可以来操作,因为之前一直是Windows Server 2012 系统,没有安装宝塔,一直没有直接自动生成过,都是手动滴,最近服务器换成了Linux系统,装了宝塔,就可以直接用脚本来实现了,具体请看下面的代码;

wget https://www.laoliang.net/sitemap.php -O/laoliang.net/sitemap.xml --no-check-certificate >/dev/null 2>&1

PS:注意路径还有网址哦;

如果在Linux系统中,执行脚本也可以,那就需要另外的参数

Linux 定时任务+wget 定时生成 sitemap.xml

0 1 * * * wget -O /(此处为目录)laoliang.net/sitemap.xml --no-check-certificate https://www.laoliang.net/sitemap.php >/dev/null 2>&1
0 1 * * * wget https://www.laoliang.net/sitemap.php -O /此处为目录/laoliang.net/sitemap.xml --no-check-certificate >/dev/null 2>&1
crontab -e 0 5 * * * wget -O /xxx/xxx/web/sitemap.xml http://www.laoliang.net/sitemap.php (注:/xxx/xxx/web/为网站根目录)

PS:注意上面的01 05 都是时间01 是凌晨1点,05就是早上五点哦,可以根据自己的方式设置即可;

此处也加载上生成sitemap的代码吧;

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

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

Nginx 伪静态规则,新增如下规则:

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

Apache伪静态规则,新增如下规则:

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

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

2021年0901更新

如果站点是 http 则添加以下代码:

wget -O /路径/laoliang.net/sitemap.xml http://www.laoliang.net/sitemap.php

如果站点是 https 则添加以下代码:

wget -O /路径/laoliang.net/sitemap.xml --no-check-certificate https://www.laoliang.net/sitemap.php

想在.htaccess文件中增加新的重定向规则的话,必须加在以上代码的前面,同时重定向语句的最后面一定加上参数[L],表明是之后不再进行重定向跳转,避免无限循环的重定向文件错误。

Apache伪静态规则 修改后的.htaccess如下:

RewriteRule ^sitemap?([0-9/-]+).xml$ sitemap.php?page=$1 [L]

也可以这样写~~~

RewriteRule ^sitemap.xml$ sitemap.php

nginx的服务在站点配置文件中添加 并重启nginx服务;

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

问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 宝塔控制面板用脚本每天自动生成WordPress网站地图(Sitemap.Xml)的方法

发表回复

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情