#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: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Formatting | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | Focuses: |
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;
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Duplicate of #22946.