首页 > 其他分享 >wordpress 编写插件实现自动汇总超链接

wordpress 编写插件实现自动汇总超链接

时间:2023-10-07 14:57:25浏览次数:36  
标签:插件 text summary content link 超链接 wordpress

背景

写长篇文章时,文章内容可能会引用了很多外站的超链接。事后我再来翻阅文章,找到想要的超链很吃力。

尝试过在插件商城寻找现有的插件,都不太令人满意。

因为需求其实很简单:将文章内容中出现过的超链接,汇总展示在文章的末尾,类似论文的引用文献。

实施

将如下代码,放在 wordpress 的插件目录中:html/wp-content/plugins/link-summary.php

<?php
/*
Plugin Name: 超链接汇总插件
Plugin URI: https://your-plugin-uri.com/
Description: 分析文章内容中的超链接,并将它们汇总展示在文章末尾
Version: 1.0
Author: PengYinwei
Author URI: https://your-website.com/
License: GPL2
*/

// 在文章内容末尾添加超链接汇总
function append_links_to_content($content) {
    // 获取文章内容
    $post_content = get_the_content();

    // 使用正则表达式匹配文章中的超链接
    preg_match_all('/<a\s+.*?href=[\'"](.*?)[\'"].*?>(.*?)<\/a>/', $post_content, $matches, PREG_SET_ORDER);

    // 如果匹配到超链接
    if (!empty($matches)) {
        // 去重
        $unique_links = array();
        foreach ($matches as $match) {
            $link_url = $match[1];
            $link_text = $match[2];

            // 使用链接文本作为唯一标识符,避免重复链接
            if (!in_array($link_text, $unique_links)) {
                $unique_links[] = $link_text;

                $link_summary .= '<li><a href="' . $link_url . '">' . $link_text . '</a></li>';
            }
        }

        // 创建超链接汇总
        if (!empty($unique_links)) {
            $link_summary = '<h2>引用链接</h2>';
            $link_summary .= '<ul>';

            foreach ($unique_links as $link_text) {
                $link_summary .= '<li><a href="' . $link_url . '">' . $link_text . '</a></li>';
            }

            $link_summary .= '</ul>';

            // 输出 h2 引用链接 前加一个空行
            $link_summary = '<br>' . $link_summary;

            // 将超链接汇总添加到文章内容末尾
            $content .= $link_summary;
        }
    }

    return $content;
}

// 将超链接汇总添加到文章内容末尾
add_filter('the_content', 'append_links_to_content');

在 wordpress 控制台启用插件

image

查看效果

image

标签:插件,text,summary,content,link,超链接,wordpress
From: https://www.cnblogs.com/pengyinwei/p/wordpress-writing-plug-in-to-achieve-automatic-summar

相关文章

  • Jmeter之plugins插件安装
    1.下载配置下载插件JMeterPluginsManager:https://jmeter-plugins.org/wiki/PluginsManager/下载JAR包并放至apache-jmeter-5.4.1\lib\ext路径下:2.PluginsManager查看已安装或可安装的插件信息(1)打开jmeter选项下增加PluginsManager选项:(在该选项下增加插件需要联网)(2)打......
  • 20款VS Code实用插件推荐
    思维导航前言VSCode相关链接地址VSCode拓展插件安装适用于VSCode的中文(简体)语言包VSCodeC#开发工具包VisualStudio代码的图标TabNine代码补全工具CopilotAI辅助编程工具自动添加关闭标签VsCode最好的代码注释扩展插查找并修复JavaScript代码中的问题Vs......
  • [知识管理] Obsidian + Remotely Save插件 + 第三方存储/OSS(七牛云)的同步方案
    0序言在几经选择、对比之后,我选择:Obsidian+RemotelySave插件+第三方存储/OSS(七牛云)的方案来搭建自己的【知识管理系统】。对比分析知识管理工具的过程,详情参见:[知识管理]个人知识管理之知识管理工具的全面分析-博客园/千千寰宇【推荐】知识管理与数据管理系......
  • 为什么我建议你趁早试试这款项目代码统计 IDEA 插件—— Statistic
    前言编程是一个很奇妙的事情,大部分的我们把大部分时间实际都花在了复制粘贴,而后修改代码上面。很多时候,我们并不关注代码质量,只要功能能实现,我才不管一个类的代码有多长、一个方法的代码有多长。因此,我们经常会碰到让自己想要骂街的项目,不过,说真的,你自己写的代码也有极大可能被......
  • 202310061227-《心得:低版本mysql配置一,些轮子插件》
    1.对于mysql5.7.42,驱动(connector)选择:5.1.46。2.测试链接时:useSSL=true&enabledTLSProtocols=TLSv1.1 驱动链接字符串上要拼接上。3.驱动链接字符串:高版本mysql,意味着高版本connector,选>=8;低版本,选择5.x;               高版本mysql,com.my......
  • 我们的插件能力再升级:支持双声道,效果堪比同传!
    这周末,我们的Youtube中文配音除了突破10000+用户之外,功能又又又升级了!这次版本主要推出了一个新功能:双声道!之前有用户在群里希望支持原声+配音的同时收听,马上这个功能就给安排上了!这里给大家录了个样例,看看效果吧:嘿嘿,是不是感觉有点同传的效果了?同时,通过双声道的实现,把背景等效果......
  • DIP插件加工的正确步骤有哪些?
    随着PCBA加工行业的发展,越来越多的产品选择用SMT贴片进行生产加工,而SMT贴片技术有着小型化、智能化的优点,技术也愈发成熟,但是一些PCBA产品还是需要进行DIP插件加工,比如一些电子元件较大的PCB线路板,SMT贴片加工不能满足它的加工要求,所以DIP插件加工也是PCBA加工流程中不可被取代的一......
  • neovim的插件管理器vim-plug导致代码颜色不显示问题解决
    neovim的帮助文件路径F:\Programs\Neovim\share\nvim\runtime\docruntimepath的帮助文档路径F:\Programs\Neovim\share\nvim\runtime\doc\options.txt$VIM环境变量$VIM被用来确定Vim中不同的用户文件的位置,比如用户启动脚本“.vimrc”。这个是系统设置,详见startup。允许每......
  • idea常用插件
    1.Idea插件安装:File->Settings->plugin->Markerplace -> install  -> 重启IDEA即可GenerateAllSetter:一键调用一个对象的所有的set方法,get方法等在方法上生成两个对象的转换Translation:翻译MyBatisLog:完整日志打印RestfulToolKit:接口定位,Ctrl+\2. Idea_Co......
  • 堡垒机AccessClient插件在Mac苹果电脑闪退,已解决
    我的配置:Macmini,AppleM2,MacOS版本13.4(22F66)先来总结我的方案:1.安装Python3;2.修改main.scpt并生效;3.看指定输出的日志提示什么;4.最后需要安装MicrosoftRemoteDesktopforMac。最初的解决方案:https://www.zhihu.com/question/435060483改了日志输出位置,查看日志,找不对具......