#23048 closed defect (bug) (duplicate)
make_clickable should not add http:// to ftp. hostnames by default (ftp:// is a better default)
Reported by: | DavidAnderson | Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | |
Component: | Formatting | Keywords: | |
Focuses: | Cc: |
Description
make_clickable in wp-includes/formatting.php is a default filter.
One of its activities is to detect this regex, and to call _make_web_ftp_clickable_cb on it:
([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]+)
_make_web_ftp_clickable_cb then adds an <a href> tag, and pre-pends '
'http://'.
That seems quite wrong, as a default, for hostnames beginning with "ftp.". It bit me; I sent out an email with something like "FTP server: ftp.example.com" in it. This went through WP Better Emails, and ended up via this filter as 'Host: <a href="http://ftp.example.com">http://ftp.example.com</a>' - i.e. ended up confusingly wrong.
I'm not sure that making links clickable by default is a good idea. But regardless of that, it's certainly wrong to *by default* change ftp. hostnames into http:// links, instead of into ftp:// links.
Therefore the third line of the function _make_web_ftp_clickable_cb in wp-includes/formatting.php should be changed from:
$dest = 'http://' . $dest;
to:
$dest = ('ftp.' == substr($dest,0,4)) ? "ftp://" . $dest : "http://" . $dest;
Duplicate of #22946.