WordPress.org

Make WordPress Core

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#3228 closed defect (bug) (fixed)

make_clickable() doesn't make all links clickable

Reported by: mdawaffe Owned by: markjaquith
Milestone: Priority: normal
Severity: normal Version:
Component: Template Keywords:
Focuses: Cc:

Description (last modified by markjaquith)

If a link is the first string after a tag such as <p>http://wordpress.org ... or <em>http://wordpress.org/</em>, the link is not made clickable.

2.0.5? [4012] (the change that broke this) went into branches/2.0

Attachments (1)

make_clickable.php (2.0 KB) - added by markjaquith 8 years ago.
Test Old vs. New vs. Proposed

Download all attachments as: .zip

Change History (10)

comment:1 Viper007Bond8 years ago

  • Component changed from Administration to Template

I think you meant [4012]. ;)

comment:2 mdawaffe8 years ago

Yes, I did mean [4012]. Thanks :)

comment:3 markjaquith8 years ago

  • Description modified (diff)

markjaquith8 years ago

Test Old vs. New vs. Proposed

comment:4 markjaquith8 years ago

  • Owner changed from anonymous to markjaquith
  • Status changed from new to assigned

Check out that upload. I've been playing with that (was testing in PHP console, so add htmlspecialchars() and <hr /> if you're testing in a browser)

My fix is simple to look for anchors within anchors, and removing the internal (undesired) anchor (the one created by our function).

For people who just want to see the results, here is the input of my script:

<p>http://example.com/ is a link.  So is: http://example.com/</p>
<p><a href="http://example.com/">example.com</a></p>
<p>www.example.com/signup/</p>
<p>ftp.example.org</p>
<p>example@example.com</p>
<p>ftp://example.com/foo/bar/</p>

Here is the output of that script.

Old function (WP < 2.0.4):

<p><a href='http://example.com/' rel='nofollow'>http://example.com/</a> is a link.  So is: <a href='http://example.com/' rel='nofollow'>http://example.com/</a></p>
<p><a href="http://example.com/">example.com</a></p>
<p>www.example.com/signup/</p>
<p>ftp.example.org</p>
<p>example@example.com</p>
<p>ftp://example.com/foo/bar/</p>

New function (2.0.4 and currently in trunk):

<p>http://example.com/ is a link.  So is: <a href='http://example.com/' rel='nofollow'>http://example.com/</a></p>
<p><a href="http://example.com/">example.com</a></p>
<p>www.example.com/signup/</p>
<p>ftp.example.org</p>
<p>example@example.com</p>
<p>ftp://example.com/foo/bar/</p>

My proposed function:

<p><a href='http://example.com/' rel='nofollow'>http://example.com/</a> is a link.  So is: <a href='http://example.com/' rel='nofollow'>http://example.com/</a></p>
<p><a href="http://example.com/">example.com</a></p>
<p><a href='http://www.example.com/signup/' rel='nofollow'>www.example.com/signup/</a></p>
<p><a href='http://ftp.example.org' rel='nofollow'>ftp.example.org</a></p>
<p><a href="mailto:example@example.com">example@example.com</a></p>
<p><a href='ftp://example.com/foo/bar/' rel='nofollow'>ftp://example.com/foo/bar/</a></p>

This is the last remaining ticket for 2.0.5 ... help a brother out!

comment:5 markjaquith8 years ago

And just to outline the problem that necessitated the change from old to new, and the problem introduced by new:

Input:

<p><a href="http://example.com/">http://example.com/</a></p>
<p>http://example.com</p>

Old:

<p><a href="http://example.com/"><a href='http://example.com/' rel='nofollow'>http://example.com/</a></a></p>
<p><a href='http://example.com' rel='nofollow'>http://example.com</a></p>

New:

<p><a href="http://example.com/">http://example.com/</a></p>
<p>http://example.com</p>

Proposed:

<p><a href="http://example.com/">http://example.com/</a></p>
<p><a href='http://example.com' rel='nofollow'>http://example.com</a></p>

comment:6 markjaquith8 years ago

  • Resolution set to fixed
  • Status changed from assigned to closed

(In [4385]) make_clickable() now faster and supports more link positions, from mdawaffe and myself. fixes #3228

comment:7 markjaquith8 years ago

(In [4386]) make_clickable() now faster and supports more link positions, from mdawaffe and myself. fixes #3228

comment:8 markjaquith8 years ago

(In [4387]) fix function name error in last two commits. fixes #3228

comment:9 anonymous8 years ago

  • Milestone 2.0.5 deleted

Milestone 2.0.5 deleted

Note: See TracTickets for help on using tickets.