Formatting: Don't run wp_targeted_link_rel()
on entirely serialized content.
Props birgire, elliotcondon. Fixes #46402. git-svn-id: https://develop.svn.wordpress.org/trunk@45408 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
8226fe338f
commit
bda3af14b0
@ -3040,7 +3040,9 @@ function wp_rel_nofollow_callback( $matches ) {
|
||||
function wp_targeted_link_rel( $text ) {
|
||||
// Don't run (more expensive) regex if no links with targets.
|
||||
if ( stripos( $text, 'target' ) !== false && stripos( $text, '<a ' ) !== false ) {
|
||||
$text = preg_replace_callback( '|<a\s([^>]*target\s*=[^>]*)>|i', 'wp_targeted_link_rel_callback', $text );
|
||||
if ( ! is_serialized( $text ) ) {
|
||||
$text = preg_replace_callback( '|<a\s([^>]*target\s*=[^>]*)>|i', 'wp_targeted_link_rel_callback', $text );
|
||||
}
|
||||
}
|
||||
|
||||
return $text;
|
||||
|
@ -127,4 +127,16 @@ class Tests_Targeted_Link_Rel extends WP_UnitTestCase {
|
||||
$expected = '<p>Links: <a href=\'\/\' target=_blank rel=\'noopener noreferrer\'>No rel<\/a><\/p>';
|
||||
$this->assertEquals( $expected, wp_targeted_link_rel( $content ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure entirely serialized content is ignored.
|
||||
*
|
||||
* @ticket 46402.
|
||||
*/
|
||||
public function test_ignore_entirely_serialized_content() {
|
||||
$content = 'a:1:{s:4:"html";s:52:"<p>Links: <a href="/" target="_blank">No Rel</a></p>";}';
|
||||
$expected = 'a:1:{s:4:"html";s:52:"<p>Links: <a href="/" target="_blank">No Rel</a></p>";}';
|
||||
$this->assertEquals( $expected, wp_targeted_link_rel( $content ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user