Make WordPress Core

Opened 18 years ago

Closed 18 years ago

Last modified 9 months ago

#3228 closed defect (bug) (fixed)

make_clickable() doesn't make all links clickable

Reported by: mdawaffe's profile mdawaffe Owned by: markjaquith's profile 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 18 years ago.
Test Old vs. New vs. Proposed

Download all attachments as: .zip

Change History (10)

#1 @Viper007Bond
18 years ago

  • Component changed from Administration to Template

I think you meant [4012]. ;)

#2 @mdawaffe
18 years ago

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

#3 @markjaquith
18 years ago

  • Description modified (diff)

@markjaquith
18 years ago

Test Old vs. New vs. Proposed

#4 @markjaquith
18 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!

#5 @markjaquith
18 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>

#6 @markjaquith
18 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

#7 @markjaquith
18 years ago

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

#8 @markjaquith
18 years ago

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

#9 @(none)
18 years ago

  • Milestone 2.0.5 deleted

Milestone 2.0.5 deleted

Note: See TracTickets for help on using tickets.