WordPress 添加友情链接页面 & 样式参考

Kevin's 的“友情链接”模块 / 页面已经丢失几年了,主要是因为现下的友链既无法联络感情又无法释放 SEO 的功能性,且有更高效的方案去实现博友互访。所以,既然 WordPress 官方都把这个模块砍了,我也就一直没弄。

在此,我非常郑重地感谢那些在此前一直保留我链接的博主们,谢谢!正好最近在折腾博客,完善功能,我就又把这个功能折腾起来并完善了页面,您各位瞧瞧:友情链接页面。其中我已尽量将自己记得的博客添加进来,但难免有疏漏忘记的,还请海涵!看到的话请在留言板提示一下。此外还有一些我常去的页面也罗列在此,排名均不分先后。另外如果你觉得本站还算有趣,也可以与我交换链接。

制作该友链页面的步骤大概分为三步,首先是把 WordPress 隐藏的友链恢复,然后是把友链信息从数据库中抓取并输出,最后是对输出的信息做一个个性化的展示。因为本人并不擅长(可以说是不会)搞代码,所以这里边大量借用了 AI 的技术,嘿嘿。

WordPress 添加友情链接页面 & 样式参考
WordPress 添加友情链接页面 & 样式参考

WordPress 从后台默认取消“友情链接”模块的原因主要是为了简化系统。早期版本的 WordPress 默认包含了“友情链接”模块(Links Manager),让用户可以方便地在博客中添加外部链接。但随着版本的更新,WordPress 团队逐渐将其归为“较少使用”的功能,于是在 3.5 版本之后默认隐藏了这一模块。如果需要再次启用“友情链接”模块,可以通过以下方法实现:

  1. 安装插件:可以使用“Link Manager”插件。该插件专为恢复此功能设计,安装并激活后会在后台显示“链接”菜单项。
  2. 添加代码:也可以在主题的 functions.php 文件中添加以下代码来启用:
// 恢复 WordPress 后台友情链接菜单
add_filter('pre_option_link_manager_enabled', '__return_true');

添加后,WordPress 链接模块就会重新显示在后台菜单中。它是用于管理网站友情链接的工具,包含核心参数如链接名称(link_name)、链接地址(link_url)和链接描述(link_description)。此外,链接模块还支持自定义链接图像(link_image),用于展示链接的图标或头像。

链接模块的其他参数包括分类(link_category)和备注(link_notes)。通过分类,用户可以方便地分组管理不同类型的链接;备注字段则允许站长添加附加信息,例如邮箱地址或其他说明。这些参数赋予了 WordPress 链接模块灵活的设置和功能,不仅便于站长管理简单的链接,还能提供丰富的链接信息展示。

一般的,咱个人博客输出友情链接无非就是名称、链接、头像和说明了,我在给 Kevin's Space 制作友链页面的时候也只考虑了这几个参数。该页面的核心功能代码如下:

// 从数据库中提取友链信息输出到页面
function display_links_with_avatar() {
    $output = '';

    // 获取所有链接
    $links = get_bookmarks(array(
        'orderby' => 'name',
        'order' => 'ASC',
    ));

    if ($links) {
        $output .= '<div class="custom-links">';
        foreach ($links as $link) {
            // 从链接的高级部分获取图片地址
            $avatar_url = $link->link_image ? $link->link_image : ''; // 链接的图片地址
            // 如果没有图片地址,则从备注中获取邮箱地址并生成 Gravatar URL
            if (empty($avatar_url) && !empty($link->link_notes)) {
                $email = sanitize_email($link->link_notes); // 从备注中获取邮箱并进行清理
                $avatar_url = get_avatar_url($email, ['size' => 32]); // 根据邮箱生成 Gravatar URL
            }
            // 使用图片地址生成头像 HTML,并使头像可点击
            $avatar = $avatar_url 
                ? '<a href="' . esc_url($link->link_url) . '" target="_blank"><img src="' . esc_url($avatar_url) . '" alt="' . esc_attr($link->link_name) . '" width="32" height="32" /></a>'
                : '<a href="' . esc_url($link->link_url) . '" target="_blank">' . get_avatar('', 32) . '</a>'; // 使用默认头像

            $output .= '<div class="link-item">';
            $output .= '<div class="link-avatar">' . $avatar . '</div>';
            $output .= '<div class="link-info">';
            $output .= '<a href="' . esc_url($link->link_url) . '" target="_blank" class="link-name">' . esc_html($link->link_name) . '</a>';
            if (!empty($link->link_description)) {
                $output .= '<p class="link-description">' . esc_html($link->link_description) . '</p>'; // 输出描述
            }
            $output .= '</div>';
            $output .= '</div>';
        }
        $output .= '</div>';
    } else {
        $output .= '<p>没有找到友情链接。</p>';
    }

    return $output;
}
add_shortcode('display_links', 'display_links_with_avatar');

本例中display_links_with_avatar() 是一个用于在页面中显示友情链接的 WordPress 函数。它通过 get_bookmarks() 获取所有友情链接,并循环输出每个链接的头像、名称和描述等信息。其中头像显示的逻辑为:优先使用“高级”部分的图片地址作为头像;如果图片地址为空,则检查备注中的邮箱地址,并通过 Gravatar 获取对应头像;若邮箱地址为空,则显示 WordPress 后台设置的默认头像。

最后就是链接页面的美化了…该页面我使用了 WPBakery 插件构建了一个简单的模板,然后将以下 CSS 以 Rawhtml 模块插入了进去。以下 CSS 样式表以表格样式显示链接,每行显示三个链接,并根据链接的设置灵活显示头像、名称和描述。您各位觉得怎样?可以在留言板中提一提美化建议,感恩(´ᴗ`ʃƪ)

.custom-links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.link-item {
    display: flex;
    padding: 10px 0;
    align-items: center;
    border-bottom: 1px solid #ccc; /* 每行链接之间用下边框分隔 */
}

.link-avatar {
    flex: 0 0 auto;
    margin-right: 10px;
}

.link-avatar img {
    border-radius: 5px;
    width: 50px;
    height: 50px;
}

.link-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.link-name {
    font-size: 1.1em;
    margin-bottom: 5px;
    color: #333;
    text-decoration: none;
}

.link-name:hover {
    text-decoration: underline;
}

.link-description {
    font-size: 0.8em;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 1; /* 限制显示两行 */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
}

/* 添加鼠标悬停提示 */
.link-description[title] {
    cursor: pointer;
}
1920 1139 Kevin's
「WordPress 添加友情链接页面 & 样式参考」有 16 条评论
  • 白熊阿丸
    11/06/2024 at 01:48 回复

    惊了,竟然有我的链接!受宠若惊
    我都没有印象交换过,检查了一下我这里没找到你的链接。
    现在我就赶紧加上><

    • 的头像
      Kevin
      11/30/2024 at 22:02 回复

      没事儿。

      我觉得你文章质量很高~

  • 的头像
    段先森
    11/05/2024 at 11:07 回复

    主要是速度还不错 ,哈哈

  • 老白博客
    11/02/2024 at 08:31 回复

    这个真得好好学习,我的博客友链页面都没有

    • 的头像
      Kevin
      11/30/2024 at 22:01 回复

      大佬见笑了,我很多都是跟你学习的……话说我这fastcgi缓存老出问题,我暂时关了

  • 奶爸 - SUIBI.NET
    11/01/2024 at 15:12 回复

    博客看起像杂志,不错。

    • 的头像
      Kevin
      11/30/2024 at 21:58 回复

      是的,最近疯狂折腾…今儿又新增了功能,赶紧来试试

  • 的头像
    klcdm
    11/01/2024 at 14:54 回复

    好看!还是这么低配不占用丝滑

    • 的头像
      Kevin
      11/30/2024 at 22:02 回复

      亲,你的博客之文章页应该是ssl有错。。我只能访问首页,chrome

      • 的头像
        klcdm
        12/01/2024 at 08:28 回复

        昨天九点十点就去更新了SSL了,今天应该没毛病了,还有问题我估计不是证书问题了

        • 的头像
          Kevin
          12/01/2024 at 10:39 回复

          好嘞,我试试看

  • Lvtu
    10/31/2024 at 10:06 回复

    最近精力挺旺盛的,哈哈~~

    • 的头像
      Kevin
      11/30/2024 at 21:57 回复

      呵,还不是闲的,今儿又稍微折腾了下

  • HelloGakki
    10/31/2024 at 09:32 回复

    友联已加~
    不过我之前就订阅了你的博客,也就忘了这茬了哈哈

  • 的头像
    obaby
    10/31/2024 at 09:30 回复

    这每天一个新功能~~

  • S
    10/30/2024 at 22:57 回复

    真不错~

发表评论

请输入关键词…