WordPress 实现自动记录死链地址(自动去重复)

文 / @UTHEME

随着网站的不断更新和维护,经常会出现一些链接失效或页面不存在的情况,这些被称为“死链”。为了更好地维护网站,我们需要及时记录这些死链地址,以便进行修复或移除。本文将介绍如何通过 WordPress 实现自动记录死链地址并避免重复记录的方法。

首先,我们需要在主题的 functions.php 文件中添加以下代码:

php
$ua = $_SERVER['HTTP_USER_AGENT'];

//WordPress 实现自动记录死链地址(防重复)
if(is_404() && strpos($ua, 'Baiduspider')!== false
||strpos($ua, 'Sogou') !== false
||strpos($ua, 'YisouSpider') !== false
||strpos($ua, 'Bytespider') !== false
||strpos($ua, 'bingbot') !== false
||strpos($ua, '360Spider')!== false
||strpos($ua, 'Googlebot')!== false ){
$file = @file("deadlinks.txt");//deadlinks.txt
$check = true;
if(is_array($file) && !empty($file))
foreach($file as &$f){
if($f == home_url($_SERVER['REQUEST_URI'])."\n")
$check = false;
}
if($check){
$fp = fopen("deadlinks.txt","a");//deadlinks.txt 就是在网站根目录的记录死链的文件
flock ($fp, LOCK_EX) ;
fwrite ($fp, home_url($_SERVER['REQUEST_URI'])."\n");
flock ($fp, LOCK_UN);
fclose ($fp);
}
}

这段代码的作用是判断是否为 404 错误页面,并且 User-Agent 是搜索引擎蜘蛛(如百度、搜狗、必应等),如果是,则自动记录当前访问的页面地址到名为“deadlinks.txt”的文件中,同时避免重复记录。

需要注意的是,我们需要在网站根目录下创建一个名为“deadlinks.txt”的文件,用于存储记录的死链地址。另外,为了防止多个进程同时写入文件导致冲突,我们使用了文件锁定的方式。

通过以上的方法,我们可以方便地实现死链地址的自动记录,并且避免重复记录。当然,在实际应用中,我们还需要及时查看记录文件并进行相应的处理,以保证网站的正常运行和用户体验。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。