获取WordPress全站文章地址一般适用于sitemap制作,最近百度熊掌号推送很火,我们在使用curl推送方式进行推送的时候需要txt格式的网址文件,此时也需要调出全站文章网址,那这篇文章对你就很有帮助了!
首先创建一个php文件,代码如下:
<?php
require('../wp-blog-header.php');
header("Content-type: text/xml");
header('HTTP/1.1 200 OK');
$posts_to_show = 6000; //这里的数字决定获取多少个文章链接,可根据自己站点实际情况来具体填写
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/">'
?>
<?php
/* 文章页面 */
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) { ?>
<url>
<loc><?php the_permalink(); ?></loc>
</url>
<?php } ?>
</urlset>
将上述代码保存为编码为UTF-8的php文件,比如以site.php命名上传到网站根目录里待用。
注意:上述代码的posts_to_show数值越大,运行时对服务器负载造成的压力也越大,所以运行这个代码时建议大家选在凌晨以后最合适。
然后在浏览器中访问这个php文件,将访问得到的页面内容全选,粘贴到NotePad+>里面进行编辑,首先将以下代码删除:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">
然后批量替换<url>和</url>,替换的结果均不要填写,保持空白
点击全部替换即可!将文件最下面一行的</urlset>删除,或者懒得下拉,替换删除,操作一样!
然后你会发现,网址与网址之间有很大的空白区域。这里我们需要点击NotePad++的编辑》行操作》移除空行(包括空白字符):
这样,网址就是一行一个了!然后全选,粘贴到之前创建的urls.xtx,这样,我们网站所有的文章链接都有了。
如果你有自己打的服务器,其实可以更简单,在服务器的控制台终端里运用wget指令结合这个PHP代码文件即可生成指定的txt文档,里面就是当前站点所有的文章链接(静态化)了,具体如下:
#通过wget命令实时生成全站链接到指定的TXT文档里
wget -O/home/wwwroot/www.mydomain.com/site.txt --no-check-certificate https://www.mydomain.com/site.php
#其中的 --no-check-certificate 参数是因为明月的站点是HTTPS的,如果是HTTP站点可以去掉这个参数。
#因为这个命令运行后需要调用数据库数据生产伪静态化链接,所以会瞬间造成服务器负载飙升,请注意使用时间段。
运行完成后,就会在网站根目录下生成一个site.txt的文档,这时再通过纯文本编辑软件(如:NotePad++等)批量搜索替换掉里面重复的XML标记代码即可。
插件下载说明
未提供下载提取码的插件,都是站长辛苦开发!需要的请联系本站客服或者站长!
织梦二次开发QQ群
本站客服QQ号:862782808(点击左边QQ号交流),群号(383578617) 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!
转载请注明: 织梦模板 » WordPress获取全站文章页地址的方法