Typecho博客Joe主题实现友链自动检测

  筱晗's
2021-05-28 / 0 评论 / 38 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年05月28日,已超过148天没有更新,若内容或图片失效,请留言反馈。

今天雪花博客从友链站执念博客 https://www.zhinianblog.com/ 搜集了一篇Typecho博客的Joe主题实现友联自动检测的方法教程。开启后可以自动检测对方站点是否添加本站为友链,从而方便站长在友联这一块审核的过程。
效果截图:
QQ截图20210528223503.png

实现方法

1.修改friends.php文件,文件路径:Joe-master/

1.第一段
<?php
    $max_allow_links = 100; // 最大许可检查的链接数目
    function my_file_get_contents($url, $timeout = 30) {
        if (function_exists('curl_init')) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $file_contents = curl_exec($ch);
            curl_close($ch);
        } else if (ini_get('allow_url_fopen') == 1 || strtolower(ini_get('allow_url_fopen')) == 'on') {
            $file_contents = @file_get_contents($url);
        } else {
            $file_contents = '';
        }
        return $file_contents;
    }
    function isExistsContentUrl($url, &$retMsg, $mydomain = "") {
        if (!isset($url) || empty($url)) {
            $retMsg = "配置URL为空";
            return false;
        }
        if (!isset($mydomain) || empty($mydomain)) {
            $mydomain = $_SERVER['SERVER_NAME'];
        }
        $resultContent = my_file_get_contents($url);
        if (trim($resultContent) == '') {
            $retMsg = "网站无法访问";
            return false;
        }
        if (strripos($resultContent, $mydomain)) {
            $retMsg = "友链正常";
            return true;
        } else {
            $retMsg = "未添加本站";
            return false;
        }
    }
?>

2.第二段
$friendsUrl = explode("||", $friends_arr[$i])[4];
if($friendsUrl) {
    $friends[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc),
        "friendsUrl" => trim($friendsUrl));
}
else {
    $friends[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc),
        "friendsUrl" => trim($url));
}


3.第三段
<span class="title" style="float: right;<?php if(Helper::options()->JFriendsSwitch !== 'on') echo 'display:none;' ?>">
<?php
    if(Helper::options()->JFriendsSwitch !== 'off') {
        $result = "";
        $ret = isExistsContentUrl($item['friendsUrl'], $result, null);
        echo $result;
    }
?>
</span>

2.修改functions.php文件,文件路径:Joe-master/

$JFriendsSwitch = new Typecho_Widget_Helper_Form_Element_Select(
    'JFriendsSwitch',
    array('off' => '关闭(默认)', 'on' => '开启'),
    'off',
    '是否开启友链检测功能',
    '介绍:开启后友链界面可以自动检测对方站点是否添加本站友链'
);
$JFriendsSwitch->setAttribute('class', 'joe_content joe_other');
$form->addInput($JFriendsSwitch->multiMode());


注意下面是修改,不是新增
$JFriends = new Typecho_Widget_Helper_Form_Element_Textarea(
    'JFriends',
    NULL,
    'Joe的博客 || https://78.al || https://cdn.jsdelivr.net/npm/typecho-joe-next@6.0.0/assets/img/link.png || Eternity is not a distance but a decision || 友链页面地址(可不填写)',
    '友情链接(非必填)',
    '介绍:用于填写友情链接 <br />
     注意:您需要先增加友联链接页面(新增独立页面-右侧模板选择友联),该项才会生效 <br />
     格式:博客名称 || 博客地址 || 博客头像 || 博客简介 || 友链页面地址 <br />
     其他:一行一个,一行代表一个友联'
);
$JFriends->setAttribute('class', 'joe_content joe_other');
$form->addInput($JFriends);

3.在主题中开启此功能后,需要在友链配置最后增加一个友链界面的链接,如果没有友链页面可不添加,如图所示
3473866717.png
图文教程已经非常的详细了,如果还是不懂的花最后只能自行摸索。
不一定非要Joe主题,分享实现的方法也可以运用在其他的主题哦。

1

评论 (0)

取消
  1. 头像
    11
    Linux · Google Chrome

    看看

    回复