宝塔控制面板用脚本每天自动生成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即可访问;

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

更多请关注:老梁`s Blog

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。 您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
Laoliang.Net资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
老梁`s Blog(老梁博客) » 宝塔控制面板用脚本每天自动生成WordPress网站地图(Sitemap.Xml)的方法

发表评论

本站承接,网站推广(SEM,SEO),软件的安装的安装与调试,服务器的推荐以及配置,APP的开发与维护,网络或者web维护;财务软件,客户管理系统,人力资源,超市POS,医药管理,服务器安全,ecshop,金蝶,用友,管家婆;

立即查看 了解详情