主页 > 教程合集 > WordPress >

WordPress获取全站文章页地址的方法

时间:2018-05-23 阅读:0

获取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>,替换的结果均不要填写,保持空白

WordPress获取全站文章页地址的方法

WordPress获取全站文章页地址的方法

点击全部替换即可!将文件最下面一行的</urlset>删除,或者懒得下拉,替换删除,操作一样!

然后你会发现,网址与网址之间有很大的空白区域。这里我们需要点击NotePad++的编辑行操作移除空行(包括空白字符)

WordPress获取全站文章页地址的方法

这样,网址就是一行一个了!然后全选,粘贴到之前创建的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标记代码即可。

如果这篇博文对你有帮助,希望您可以打赏给博主余斗,以支持余斗继续坚持下去!

余斗个人博客打赏二维码

余斗余斗
  • 版权声明:原创文章由发表在WordPress分类下,2018-05-23最后更新,转载注明出处。

相关推荐

返回顶部