函数文档

_make_web_ftp_clickable_cb()

💡 云策文档标注

概述

_make_web_ftp_clickable_cb() 是一个用于将 URL 匹配转换为 HTML A 元素的回调函数,从 WordPress 2.5.0 向后移植到 2.3.2 版本。它作为 make_clickable() 的正则表达式回调,处理 URL 的清理和链接生成。

关键要点

  • 函数用途:将 URL 匹配转换为带有 URL 地址的 HTML A 元素。
  • 参数:接受一个必需的数组参数 $matches,表示单个正则匹配。
  • 返回值:返回一个字符串,即 HTML A 元素。
  • 相关函数:依赖于 _make_clickable_rel_attr() 构建 rel 属性,并使用 esc_url() 清理 URL。
  • 版本历史:在 WordPress 2.3.2 中引入。

代码示例

function _make_web_ftp_clickable_cb( $matches ) {
    $ret  = '';
    $dest = $matches[2];
    $dest = 'http://' . $dest;

    // Removed trailing [.,;:)] from URL.
    $last_char = substr( $dest, -1 );
    if ( in_array( $last_char, array( '.', ',', ';', ':', ')' ), true ) ) {
        $ret  = $last_char;
        $dest = substr( $dest, 0, strlen( $dest ) - 1 );
    }

    $dest = esc_url( $dest );
    if ( empty( $dest ) ) {
        return $matches[0];
    }

    $rel_attr = _make_clickable_rel_attr( $dest );

    return $matches[1] . "{$dest}{$ret}";
}

注意事项

函数内部会移除 URL 末尾的标点符号(如 . , ; : )),并使用 esc_url() 确保 URL 安全。如果清理后的 URL 为空,则返回原始匹配。


📄 原文内容

Callback to convert URL match to HTML A element.

Description

This function was backported from 2.5.0 to 2.3.2. Regex callback for make_clickable() .

Parameters

$matchesarrayrequired
Single Regex Match.

Return

string HTML A element with URL address.

Source

function _make_web_ftp_clickable_cb( $matches ) {
	$ret  = '';
	$dest = $matches[2];
	$dest = 'http://' . $dest;

	// Removed trailing [.,;:)] from URL.
	$last_char = substr( $dest, -1 );
	if ( in_array( $last_char, array( '.', ',', ';', ':', ')' ), true ) ) {
		$ret  = $last_char;
		$dest = substr( $dest, 0, strlen( $dest ) - 1 );
	}

	$dest = esc_url( $dest );
	if ( empty( $dest ) ) {
		return $matches[0];
	}

	$rel_attr = _make_clickable_rel_attr( $dest );

	return $matches[1] . "<a href="{$dest}"{$rel_attr}>{$dest}</a>{$ret}";
}

Changelog

Version Description
2.3.2 Introduced.