逛MonsterX博客的时候发现了友链随机输出的这个方式,我觉得的确挺不错的,于是开始折腾。
研究了一下Links插件发现……并不能在不改动插件的情况下实现该功能……
那能怎么办喽,只能改插件了……
Links插件中,output
函数是把所有友链解析为html
之后直接接成一个超长字符串……所以为了实现随机显示,需要输出数组而不是字符串,从而进行shuffle
操作(数组随机打乱)。
那么就是把:
$str = "";
foreach ($links as $link) {
if ($link['image'] == NULL) {
$link['image'] = $nopic_url;
}
$str .= str_replace(
array('{lid}', '{name}', '{url}', '{sort}', '{title}', '{description}', '{image}', '{user}'),
array($link['lid'], $link['name'], $link['url'], $link['sort'], $link['description'], $link['description'], $link['image'], $link['user']),
$pattern
);
}
return $str;
改成这样:
$number = 0;
foreach ($links as $link) {
if ($link['image'] == NULL) {
$link['image'] = $nopic_url;
}
$Links[$number++] = str_replace(
array('{lid}', '{name}', '{url}', '{sort}', '{title}', '{description}', '{image}', '{user}'),
array($link['lid'], $link['name'], $link['url'], $link['sort'], $link['description'], $link['description'], $link['image'], $link['user']),
$pattern
);
}
return $Links;
既然有了友链数组,你就可以想干嘛干嘛了自己魔改啦,比如随机顺序输出:
$Links=Links_Plugin::output('
<div class="mdui-col">
<div class="mdui-card mdui-m-y-1 mdui-hoverable">
<a href="{url}" target="_blank">
<div class="mdui-card-header">
<img class="mdui-card-header-avatar" src="{image}" alt="{name}"/>
<div class="mdui-card-header-title">{name}</div>
<div class="mdui-card-header-subtitle">{description}</div>
</div>
</a>
</div>
</div>
');
shuffle($Links); //PHP自带的函数,将数组随机打乱
$tot=count($Links);
for ($i=0;$i<$tot;$i++) echo $Links[$i]; //输出友链
效果可以查看友链页面。
插件已经上传到github了(内附较详细使用方法),戳这里。
输出友链怎么用 😭
@道麟笔记
抱歉有点久远了,我也不太记得了,可以尝试看看文档
我知道你该的那个友链插件怎么用。。。。
太强了!实现了我一直想做的功能
日记还是没法评论( ⊙ o ⊙ )啊!
@qwq
很抱歉日记评论暂时咕咕咕了
我来了嘿嘿,等我给自己放完假就改 Bug !
@初夏阳光
大佬您怎么把博客改炸了
@ZigZagK
没有,是服务器炸了。正在修QaQ…