Themes: Fix some broken links in the legacy theme preview.
Built from https://develop.svn.wordpress.org/branches/4.2@33549 git-svn-id: http://core.svn.wordpress.org/branches/4.2@33516 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
b0b028eacd
commit
e2e6972945
|
@ -673,8 +673,6 @@ function preview_theme() {
|
||||||
|
|
||||||
// Prevent theme mods to current theme being used on theme being previewed
|
// Prevent theme mods to current theme being used on theme being previewed
|
||||||
add_filter( 'pre_option_theme_mods_' . get_option( 'stylesheet' ), '__return_empty_array' );
|
add_filter( 'pre_option_theme_mods_' . get_option( 'stylesheet' ), '__return_empty_array' );
|
||||||
|
|
||||||
ob_start( 'preview_theme_ob_filter' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -711,7 +709,7 @@ function _preview_theme_stylesheet_filter() {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function preview_theme_ob_filter( $content ) {
|
function preview_theme_ob_filter( $content ) {
|
||||||
return preg_replace_callback( "|(<a.*?href=([\"']))(.*?)([\"'].*?>)|", 'preview_theme_ob_filter_callback', $content );
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -726,26 +724,7 @@ function preview_theme_ob_filter( $content ) {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function preview_theme_ob_filter_callback( $matches ) {
|
function preview_theme_ob_filter_callback( $matches ) {
|
||||||
if ( strpos($matches[4], 'onclick') !== false )
|
return $matches[0];
|
||||||
$matches[4] = preg_replace('#onclick=([\'"]).*?(?<!\\\)\\1#i', '', $matches[4]); //Strip out any onclicks from rest of <a>. (?<!\\\) means to ignore the '" if it's escaped by \ to prevent breaking mid-attribute.
|
|
||||||
if (
|
|
||||||
( false !== strpos($matches[3], '/wp-admin/') )
|
|
||||||
||
|
|
||||||
( false !== strpos( $matches[3], '://' ) && 0 !== strpos( $matches[3], home_url() ) )
|
|
||||||
||
|
|
||||||
( false !== strpos($matches[3], '/feed/') )
|
|
||||||
||
|
|
||||||
( false !== strpos($matches[3], '/trackback/') )
|
|
||||||
)
|
|
||||||
return $matches[1] . "#$matches[2] onclick=$matches[2]return false;" . $matches[4];
|
|
||||||
|
|
||||||
$stylesheet = isset( $_GET['stylesheet'] ) ? $_GET['stylesheet'] : '';
|
|
||||||
$template = isset( $_GET['template'] ) ? $_GET['template'] : '';
|
|
||||||
|
|
||||||
$link = add_query_arg( array( 'preview' => 1, 'template' => $template, 'stylesheet' => $stylesheet, 'preview_iframe' => 1 ), $matches[3] );
|
|
||||||
if ( 0 === strpos($link, 'preview=1') )
|
|
||||||
$link = "?$link";
|
|
||||||
return $matches[1] . esc_attr( $link ) . $matches[4];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue