前言
JOE主题是Typecho博客一款高颜值、简洁、大气、绚丽、多功能免费开源的模版,深受广大Typecho博主的青睐,并且许多博主也是基于该模版进行二次创作。
但是JOE作者并没有在模版添加首页友情链接功能,今天就给大家分享一段JOE模版仅在首页显示友情链接的代码,分为首页链接和内页链接,博主们可以自定义首链和内链。
教程
- 仅首页显示友链,分页不会显示
1.首先打开模板根目录文件 index.php,在第180和181行之间(换行)加入以下代码(也可在footer.php添加);
<div class="joe_container link">
<?php if ($this->is('index')) : ?>
<div class="item">
<strong>友情链接:</strong>
<?php
$friends = [];
$friends_text = $this->options->JFriendsIndex;
if ($friends_text) {
$friends_arr = explode("\r\n", $friends_text);
if (count($friends_arr) > 0) {
for ($i = 0; $i < count($friends_arr); $i++) {
$name = explode("||", $friends_arr[$i])[0];
$url = explode("||", $friends_arr[$i])[1];
$avatar = explode("||", $friends_arr[$i])[2];
$desc = explode("||", $friends_arr[$i])[3];
$friends[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc));
};
}
}
?>
<?php if (sizeof($friends) > 0) : ?>
<?php foreach ($friends as $item) : ?>
<a class="contain" href="<?php echo $item['url']; ?>" target="_blank" rel="noopener noreferrer">
<span class="title" style="color:#70757a;"><?php echo $item['name']; ?></span>
</a>
<?php endforeach; ?>
<?php endif; ?>
<a class="contain" href="<?php $this->options->siteUrl(); ?>links.html" target="_blank" rel="noopener noreferrer">
<span class="title" style="color:#76b8fc;"> 更多 ></span>
</a>
</div>
<?php endif; ?>
</div><br>
- 区分首页内页链接,内链不会出现在首页
2.打开模板根目录文件 friends.php ,将第35至105行代码替换成如下代码;
<?php
$friends_index = [];
$friends_index_color = [
'#F8D800',
'#0396FF',
'#EA5455',
'#7367F0',
'#32CCBC',
'#F6416C',
'#28C76F',
'#9F44D3',
'#F55555',
'#736EFE',
'#E96D71',
'#DE4313',
'#D939CD',
'#4C83FF',
'#F072B6',
'#C346C2',
'#5961F9',
'#FD6585',
'#465EFB',
'#FFC600',
'#FA742B',
'#5151E5',
'#BB4E75',
'#FF52E5',
'#49C628',
'#00EAFF',
'#F067B4',
'#F067B4',
'#ff9a9e',
'#00f2fe',
'#4facfe',
'#f093fb',
'#6fa3ef',
'#bc99c4',
'#46c47c',
'#f9bb3c',
'#e8583d',
'#f68e5f',
];
$friends_index_text = $this->options->JFriendsIndex;
if ($friends_index_text) {
$friends_index_arr = explode("\r\n", $friends_index_text);
if (count($friends_index_arr) > 0) {
for ($i = 0; $i < count($friends_index_arr); $i++) {
$name = explode("||", $friends_index_arr[$i])[0];
$url = explode("||", $friends_index_arr[$i])[1];
$avatar = explode("||", $friends_index_arr[$i])[2];
$desc = explode("||", $friends_index_arr[$i])[3];
$friends_index[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc));
};
}
}
?>
<?php if (sizeof($friends_index) > 0) : ?>
<h3 class="joe_mtitle"><span class="joe_mtitle__text">首页友链</span></h3>
<ul class="joe_detail__friends">
<?php foreach ($friends_index as $iitem) : ?>
<li class="joe_detail__friends-item">
<a class="contain" href="<?php echo $iitem['url']; ?>" target="_blank" rel="noopener noreferrer" style="background: <?php echo $friends_index_color[mt_rand(0, count($friends_index_color) - 1)] ?>">
<span class="title"><?php echo $iitem['name']; ?></span>
<div class="content">
<div class="desc"><?php echo $iitem['desc']; ?></div>
<img width="40" height="40" class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" data-src="<?php echo $iitem['avatar']; ?>" alt="<?php echo $iitem['name']; ?>" />
</div>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php
$friends = [];
$friends_color = [
'#F8D800',
'#0396FF',
'#EA5455',
'#7367F0',
'#32CCBC',
'#F6416C',
'#28C76F',
'#9F44D3',
'#F55555',
'#736EFE',
'#E96D71',
'#DE4313',
'#D939CD',
'#4C83FF',
'#F072B6',
'#C346C2',
'#5961F9',
'#FD6585',
'#465EFB',
'#FFC600',
'#FA742B',
'#5151E5',
'#BB4E75',
'#FF52E5',
'#49C628',
'#00EAFF',
'#F067B4',
'#F067B4',
'#ff9a9e',
'#00f2fe',
'#4facfe',
'#f093fb',
'#6fa3ef',
'#bc99c4',
'#46c47c',
'#f9bb3c',
'#e8583d',
'#f68e5f',
];
$friends_text = $this->options->JFriends;
if ($friends_text) {
$friends_arr = explode("\r\n", $friends_text);
if (count($friends_arr) > 0) {
for ($i = 0; $i < count($friends_arr); $i++) {
$name = explode("||", $friends_arr[$i])[0];
$url = explode("||", $friends_arr[$i])[1];
$avatar = explode("||", $friends_arr[$i])[2];
$desc = explode("||", $friends_arr[$i])[3];
$friends[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc));
};
}
}
?>
<?php if (sizeof($friends) > 0) : ?>
<h3 class="joe_mtitle"><span class="joe_mtitle__text">内页友链</span></h3>
<ul class="joe_detail__friends">
<?php foreach ($friends as $item) : ?>
<li class="joe_detail__friends-item">
<a class="contain" href="<?php echo $item['url']; ?>" target="_blank" rel="noopener noreferrer" style="background: <?php echo $friends_color[mt_rand(0, count($friends_color) - 1)] ?>">
<span class="title"><?php echo $item['name']; ?></span>
<div class="content">
<div class="desc"><?php echo $item['desc']; ?></div>
<img width="40" height="40" class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" data-src="<?php echo $item['avatar']; ?>" alt="<?php echo $item['name']; ?>" />
</div>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
- 添加首页内页链接控制
3.打开模板根目录文件 functions.php ,将第720~731行的代码替换成如下代码;
$JFriendsIndex = new Typecho_Widget_Helper_Form_Element_Textarea(
'JFriendsIndex',
NULL,
'小王先森 || https://xwsir.cn/ || https://thirdqq.qlogo.cn/g?b=qq&nk=2027821710&s=100 || 山川异域,风月同天',
'首页链接(非必填)',
'介绍:用于填写首页友情链接 <br />
格式:博客名称 || 博客地址 || 博客头像 || 博客简介 <br />
其他:一行一个,一行代表一个友链'
);
$JFriendsIndex->setAttribute('class', 'joe_content joe_other');
$form->addInput($JFriendsIndex);
$JFriends = new Typecho_Widget_Helper_Form_Element_Textarea(
'JFriends',
NULL,
'Joe的博客 || https://78.al || https://fastly.jsdelivr.net/npm/typecho-joe-next@6.0.0/assets/img/link.png || Eternity is not a distance but a decision',
'内页链接(非必填)',
'介绍:用于填写友情链接 <br />
注意:您需要先增加友链链接页面(新增独立页面-右侧模板选择友链),该项才会生效 <br />
格式:博客名称 || 博客地址 || 博客头像 || 博客简介 <br />
其他:一行一个,一行代表一个友链'
);
评论 (0)