_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.
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. |