记录一下 Puock 主题设置友情链接作为导航站的折腾过程
我们可以在 WordPress 后台新建一个页面,这个页面可以什么内容都不填,记得模板选择“友情链接”就行
然后我们在 WordPress 后台的链接管理中添加链接就行了,对,就这么简单
但是现在我们有了别的需求,而这个需求是 Puock 主题目前不具备的,比如链接排序
好的那么现在先看看怎么解决
先进入服务器后台,将 WordPress 服务停止,找到 ./wp-content/themes/wordpress-theme-puock-x.x.x/pages/
进入文件夹后我们会发现很多 php 文件,那么这些就是 Puock 主题给出的所有模板文件了,找到 template-links.php 打开修改友情链接模板
将
usort($links, function($a, $b) {return strcmp($a->link_notes, $b->link_notes);
});
👉 放在:$links = pk_get_wp_links($cats, true);的下面
那么现在将会根据“link_notes”即“批注”排序,排序方式可参照下面的形式
- 1000-xxx
- 1002-xxx
- 1003-xxx
但现在新的问题就又出现了,这种在批注前面加序号的方式虽然解决了自由排序的问题,但说到底还是不够美观,前端显示很别扭,那么接下来我们就来处理这一问题
现在模板里显示描述的地方是:
<?php echo empty($link->link_notes) ? __('暂无介绍', PUOCK) : $link->link_notes ?>
✅ 改成下面这样:
<?php $desc = $link->link_notes; $desc = preg_replace('/^\d+\-/', '', $desc); echo empty($desc) ? __(' 暂无介绍 ', PUOCK) : $desc;?>
那么现在前端就不会再显示“1000-”这样的前缀了
接下来就是将链接的分类标签也按刚刚的方法排序,这样会更加灵活且实用
在排序前先转成普通数组,在 foreach ($groups as $group) 之前加:
$groups = array_values($groups);
usort($groups, function($a, $b) {return strcmp($a['name'], $b['name']);
});
推荐可直接加在 get_header(); 的前面
接下来同样的,去掉前端显示
将 <h6><?php echo $group['name'] ?></h6> 改为
<?php
$group_name = preg_replace('/^\d+[\-\_\s]?/', '', $group['name']);
?>
<h6><?php echo $group_name ?></h6>
OK,至此,基本完成改造!记得修改完成后启动 WordPress 服务,Enjoy!
接下来这部分是附加部分,可按需选择是否改造
主要解决的问题是鼠标悬停时的文本显示,前端隐藏“1000-”的前缀
👉title="<?php echo empty($link->link_notes) ? $link->link_name : $link->link_notes ?>"这里直接用了原始的“link_notes”
所以 tooltip 还带“1000-”的前缀
✅ 解决方法:同样处理一次,改成:
<?php
$desc = $link->link_notes;
$desc = preg_replace('/^\d+[\-\_\s]?/', '', $desc);
?>
title="<?php echo empty($desc) ? $link->link_name : $desc ?>"