[wp-meta] [Making WordPress.org] #3998: Support Forums: Incorrect link conversion
Making WordPress.org
noreply at wordpress.org
Wed Dec 19 07:23:57 UTC 2018
#3998: Support Forums: Incorrect link conversion
----------------------------+----------------------
Reporter: SergeyBiryukov | Owner: (none)
Type: defect | Status: closed
Priority: normal | Milestone:
Component: Support Forums | Resolution: invalid
Keywords: |
----------------------------+----------------------
Changes (by dd32):
* status: new => closed
* resolution: => invalid
Comment:
This is a problem in `bbp_make_clickable()`, but is also present in
`make_clickable()`.
Given the input string of `<a href="https://codex.wordpress.org/Roles and
Capabilities">https://codex.wordpress.org/Roles and Capabilities</a>` both
will return the invalid output.
Both contain the following to correct it:
{{{
return preg_replace( '#(<a([ \r\n\t]+[^>]+?>|>))<a
[^>]+?>([^>]+?)</a></a>#i', "$1$3</a>", $r );
}}}
But as the resulting HTML is the following it's not matched (due to the
`</a></a>` - which assumes that neither the linked text never has spaces
or isn't a URL)
{{{
<a href="https://codex.wordpress.org/Roles and Capabilities"><a
href="https://codex.wordpress.org/Roles"
rel="nofollow">https://codex.wordpress.org/Roles</a> and Capabilities</a>
}}}
Adjusting the regular expression to the following does work however:
{{{
return preg_replace( '#(<a([ \r\n\t]+[^>]+?>|>))<a
[^>]+?>([^>]+?)</a>([^<]*)</a>#i', "$1$3$4</a>", $r );
}}}
As a work around, you can remove the spaces from the linked text, which
avoids it:
`<a href="https://codex.wordpress.org/Roles and
Capabilities">https://codex.wordpress.org/Roles and Capabilities</a>`.
I'm going to call this a bug in WordPress and bbPress.
Closing in favour of https://bbpress.trac.wordpress.org/ticket/3237 &
https://core.trac.wordpress.org/ticket/45702
--
Ticket URL: <https://meta.trac.wordpress.org/ticket/3998#comment:1>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org
More information about the wp-meta
mailing list