投稿 搜索

热搜词

热门文章

WordPress获取全站文章页地址的教程

获取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标记代码即可。

文章地址:https://www.ruzw.com/html/201806/1121.html

声明: 该文观点仅代表专栏作者本人,RUZW电商运营网仅提供信息存储空间服务!
赞 | 0
圈子
加RUZW运营微信
  • RUZW官方运营号
  • 电商运营网
  • 加入大牛电商运营交流群!