Wordpress,为所有链接添加 标签

2024-02-20

当我在 WordPress 网站上撰写博客文章时,我想在所有锚标记内动态添加一个 span 标记,其数据属性与锚标记具有相同的值。

Example

我在 WordPress 中写的内容:

<p>Some text with <a href="#">a link in it</a></p>

什么生成:

<p>Some text with <a href="#"><span data-title="a link in it">a link in it</span></a>

如何使用 jQuery 或 PHP 做到这一点?


使用 PHP,您应该能够这样做:

function wrap_anchor_text_with_span( $content ) {
    if ( ! is_admin() && preg_match( '~<a(.*?)>(.*?)</a>~', $content ) ) {
        $content = preg_replace_callback( '~<a(.*?)>(.*?)</a>~', '_add_span', $content );
    }
    return $content;
}
add_filter('the_content', 'wrap_anchor_text_with_span', 10);

function _add_span( $matches ) {
    if ( ! ( $title = strip_tags( $matches[2] ) ) ) { // If we only have an image inside the anchor
        return '<a' . $matches[1] . '>' . $matches[2] . '</a>';
    } else {
        return '<a' . $matches[1] . '><span data-title="' . esc_attr( $title ) . '">' . $matches[2] . '</span></a>';
    }
}

这个函数的作用是它挂钩the_content过滤并在所有锚标记内放置一个跨度。

Note如果锚点包含图像,则不会添加跨度 - 如果需要,您可以通过更改来更改此行为_add_span函数:

function _add_span( $matches ) {
    return '<a' . $matches[1] . '><span data-title="' . esc_attr( strip_tags( $matches[2] ) ) . '">' . $matches[2] . '</span></a>';
}

jQuery 解决方案也不会很困难,但我认为仅 PHP 就足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wordpress,为所有链接添加 标签 的相关文章

随机推荐

  • Monodevelop 2.8、XCode 3.2.6、界面生成器:出口和操作

    编辑 由于我还没有安装 XCode 4 我想知道 MD 2 8 是否与 XCode 3 2 6 完全兼容 特别是 我是否能够将插座和操作与中描述的新过程连接起来机器翻译文档 http docs xamarin com ios tutoria
  • 如何在 swift 3+ 中调整键盘的滚动视图

    如何调整滚动视图以垂直补偿键盘 继续阅读 是的 我知道这是一些基本信息 但今天我随机注意到 我看到的关于这个主题的所有答案都充满了信息 版本和 或到处使用刘海 但对于 Swift 来说没有什么可靠的3 斯威夫特 4 2 代替滚动视图对于 U
  • Android ExpandableListView:单击时设置所选项目的背景颜色

    当用户单击我的子项目时 我试图为项目设置背景颜色expandableListView 这是代码 expListView setOnChildClickListener new OnChildClickListener Override pu
  • 在 FluentValidation 中覆盖默认 ASP.NET MVC 消息

    我收到验证消息 值 xxx 对于 yyy 无效 当我为双精度类型发布错误的值时 就会发生这种情况 我不知道如何改变它 不幸的是 FluentValidation 无法覆盖这一点 MVC 验证的可扩展性模型在许多地方都受到一定限制 而且我无法
  • iOS - 通过渲染从 UIView 生成 PDF 会降低质量

    我使用以下方法从 UIView 生成 PDF 它们都创建了 PDF 但质量下降了 方法一 implementation UIView PDFWritingAdditions void renderInPDFFile NSString pat
  • 如何在validationif装饰器nestjs类验证器中使用else条件?

    我需要有条件地验证在 Nestjs 类验证器中提交的输入 有一个 validateif 装饰器 但如何在 else 部分添加另一个验证 例如 如果第一个输入是电子邮件 则使用电子邮件装饰器 如果它是电话 则与我的正则表达式匹配 IsNotE
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • JavaFx:组合框表格单元格双击

    问题如下 我有一个TableView with ComboBoxes对于每个 TableCell 我可以选择 组合框中的值 问题是 如果我有很多行和列 我必须多次单击才能在每个组合框中选择适当的值 要在组合框中选择一个值 我必须单击四次才能
  • JDK5/JDK 6 将 String 转换为 Date 时有什么区别

    JDK 5 是否可以生成 default message Failed to convert property value of type java lang String to required type java util Date f
  • VIEW 中的 ORDER BY 返回不同结果的 SQL

    这是我的观点 CREATE VIEW STD USER view TransInvoice AS SELECT TOP 999999 Customernr Referensnr 2 as a InvoiceRowData FileHead
  • wxPython 因分段错误而崩溃

    我很困惑为什么我的应用程序因分段错误而崩溃 我有一个使用 wxPython 作为前端的 python 应用程序 我的应用程序因分段错误而随机崩溃 我知道它必须是 wxPython 因为我有相同代码的控制台版本 并且它不会崩溃 前端是一个只读
  • Docker 容器中卷的权限错误

    我通过本地 docker machine VM 在 OSX 10 11 中运行 Docker 1 8 1 我有以下 docker compose yml web build docker web ports 80 80 8080 8080
  • 在 Monotouch 中编译 lambda 并调用设备上的委托

    我目前正在 MonoTouch 中移植 NET 代码库 并且目前正在研究一种接收Expression
  • 为什么我的“计数前导零”程序出现故障?

    以下代码返回 Hacker s Delight 书中的前导零的数量 include
  • 当我重命名项目时,Xcode 6.3 崩溃

    昨天我将 Xcode 更新到 6 3 版本 因为我的 iPhone 具有 8 3 软件版本 并且 Xcode 想要最新版本来运行该应用程序 现在一切都已更新 但 Xcode 无法再重命名该项目了 如果我复制该项目 然后打开它并在 身份 和
  • 如何将我的编译器与 eclipse 集成?

    我有一个使用 flex bison 和 C 编写的迷你编译器 我想在 eclipse 中使用它 就像使用java编译器一样 但我不知道如何做到这一点 所以我需要一些帮助和一些建议 Thanks 创建商业品质的 Eclipse IDE htt
  • 无法启动 net 6 + React 应用程序的 SPA 代理

    我正在创建一个基于 ASP NET CORE Web 应用程序 React 模板的新项目 然后我根据需要配置 ClientApp 我使用自己的 webpack config js 而不是 CRA 前端工作正常 当我运行它时它按预期启动npm
  • jQuery 启用/禁用显示/隐藏按钮和选择选项。获取剩余选项值

    我有一个使用文本字段中的值填充的选择列表 我还有两个按钮 一个添加按钮 用于将输入的值添加到选择列表中 一个删除按钮 用于从选择列表中删除输入的值 我想使用 jQuery 执行以下操作 如果在文本字段中输入的值为无法使用在选择列表中 显示添
  • PHP Curl 异步响应

    我有一个 PHP 文件 它通过curl 调用另一个PHP 文件 我试图让第二个文件向第一个文件发送响应 让它知道它已启动 问题是第一个不能等待第一个完成执行 因为这可能需要一分钟或更长时间 我需要它立即发送响应 然后继续处理常规业务 我尝试
  • Wordpress,为所有链接添加 标签

    当我在 WordPress 网站上撰写博客文章时 我想在所有锚标记内动态添加一个 span 标记 其数据属性与锚标记具有相同的值 Example 我在 WordPress 中写的内容 p Some text with a href a li