Edit File by line
/home/zeestwma/redstone.../wp-admin...
File: theme-editor.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Theme file editor administration panel.
[2] Fix | Delete
*
[3] Fix | Delete
* @package WordPress
[4] Fix | Delete
* @subpackage Administration
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
/** WordPress Administration Bootstrap */
[8] Fix | Delete
require_once __DIR__ . '/admin.php';
[9] Fix | Delete
[10] Fix | Delete
if ( is_multisite() && ! is_network_admin() ) {
[11] Fix | Delete
wp_redirect( network_admin_url( 'theme-editor.php' ) );
[12] Fix | Delete
exit;
[13] Fix | Delete
}
[14] Fix | Delete
[15] Fix | Delete
if ( ! current_user_can( 'edit_themes' ) ) {
[16] Fix | Delete
wp_die( '<p>' . __( 'Sorry, you are not allowed to edit templates for this site.' ) . '</p>' );
[17] Fix | Delete
}
[18] Fix | Delete
[19] Fix | Delete
// Used in the HTML title tag.
[20] Fix | Delete
$title = __( 'Edit Themes' );
[21] Fix | Delete
$parent_file = 'themes.php';
[22] Fix | Delete
[23] Fix | Delete
get_current_screen()->add_help_tab(
[24] Fix | Delete
array(
[25] Fix | Delete
'id' => 'overview',
[26] Fix | Delete
'title' => __( 'Overview' ),
[27] Fix | Delete
'content' =>
[28] Fix | Delete
'<p>' . __( 'You can use the theme file editor to edit the individual CSS and PHP files which make up your theme.' ) . '</p>' .
[29] Fix | Delete
'<p>' . __( 'Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme&#8217;s template files. Clicking once on any file name causes the file to appear in the large Editor box.' ) . '</p>' .
[30] Fix | Delete
'<p>' . __( 'For PHP files, you can use the documentation dropdown to select from functions recognized in that file. Look Up takes you to a web page with reference material about that particular function.' ) . '</p>' .
[31] Fix | Delete
'<p id="editor-keyboard-trap-help-1">' . __( 'When using a keyboard to navigate:' ) . '</p>' .
[32] Fix | Delete
'<ul>' .
[33] Fix | Delete
'<li id="editor-keyboard-trap-help-2">' . __( 'In the editing area, the Tab key enters a tab character.' ) . '</li>' .
[34] Fix | Delete
'<li id="editor-keyboard-trap-help-3">' . __( 'To move away from this area, press the Esc key followed by the Tab key.' ) . '</li>' .
[35] Fix | Delete
'<li id="editor-keyboard-trap-help-4">' . __( 'Screen reader users: when in forms mode, you may need to press the Esc key twice.' ) . '</li>' .
[36] Fix | Delete
'</ul>' .
[37] Fix | Delete
'<p>' . __( 'After typing in your edits, click Update File.' ) . '</p>' .
[38] Fix | Delete
'<p>' . __( '<strong>Advice:</strong> Think very carefully about your site crashing if you are live-editing the theme currently in use.' ) . '</p>' .
[39] Fix | Delete
'<p>' . sprintf(
[40] Fix | Delete
/* translators: %s: Link to documentation on child themes. */
[41] Fix | Delete
__( 'Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a <a href="%s">child theme</a> instead.' ),
[42] Fix | Delete
__( 'https://developer.wordpress.org/themes/advanced-topics/child-themes/' )
[43] Fix | Delete
) . '</p>' .
[44] Fix | Delete
( is_network_admin() ? '<p>' . __( 'Any edits to files from this screen will be reflected on all sites in the network.' ) . '</p>' : '' ),
[45] Fix | Delete
)
[46] Fix | Delete
);
[47] Fix | Delete
[48] Fix | Delete
get_current_screen()->set_help_sidebar(
[49] Fix | Delete
'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
[50] Fix | Delete
'<p>' . __( '<a href="https://developer.wordpress.org/themes/">Documentation on Theme Development</a>' ) . '</p>' .
[51] Fix | Delete
'<p>' . __( '<a href="https://wordpress.org/documentation/article/appearance-theme-file-editor-screen/">Documentation on Editing Themes</a>' ) . '</p>' .
[52] Fix | Delete
'<p>' . __( '<a href="https://developer.wordpress.org/advanced-administration/wordpress/edit-files/">Documentation on Editing Files</a>' ) . '</p>' .
[53] Fix | Delete
'<p>' . __( '<a href="https://developer.wordpress.org/themes/basics/template-tags/">Documentation on Template Tags</a>' ) . '</p>' .
[54] Fix | Delete
'<p>' . __( '<a href="https://wordpress.org/support/forums/">Support forums</a>' ) . '</p>'
[55] Fix | Delete
);
[56] Fix | Delete
[57] Fix | Delete
$action = ! empty( $_REQUEST['action'] ) ? sanitize_text_field( $_REQUEST['action'] ) : '';
[58] Fix | Delete
$theme = ! empty( $_REQUEST['theme'] ) ? sanitize_text_field( $_REQUEST['theme'] ) : '';
[59] Fix | Delete
$file = ! empty( $_REQUEST['file'] ) ? sanitize_text_field( $_REQUEST['file'] ) : '';
[60] Fix | Delete
$error = ! empty( $_REQUEST['error'] );
[61] Fix | Delete
[62] Fix | Delete
if ( $theme ) {
[63] Fix | Delete
$stylesheet = $theme;
[64] Fix | Delete
} else {
[65] Fix | Delete
$stylesheet = get_stylesheet();
[66] Fix | Delete
}
[67] Fix | Delete
[68] Fix | Delete
$theme = wp_get_theme( $stylesheet );
[69] Fix | Delete
[70] Fix | Delete
if ( ! $theme->exists() ) {
[71] Fix | Delete
wp_die( __( 'The requested theme does not exist.' ) );
[72] Fix | Delete
}
[73] Fix | Delete
[74] Fix | Delete
if ( $theme->errors() && 'theme_no_stylesheet' === $theme->errors()->get_error_code() ) {
[75] Fix | Delete
wp_die( __( 'The requested theme does not exist.' ) . ' ' . $theme->errors()->get_error_message() );
[76] Fix | Delete
}
[77] Fix | Delete
[78] Fix | Delete
$allowed_files = array();
[79] Fix | Delete
$style_files = array();
[80] Fix | Delete
[81] Fix | Delete
$file_types = wp_get_theme_file_editable_extensions( $theme );
[82] Fix | Delete
[83] Fix | Delete
foreach ( $file_types as $type ) {
[84] Fix | Delete
switch ( $type ) {
[85] Fix | Delete
case 'php':
[86] Fix | Delete
$allowed_files += $theme->get_files( 'php', -1 );
[87] Fix | Delete
break;
[88] Fix | Delete
case 'css':
[89] Fix | Delete
$style_files = $theme->get_files( 'css', -1 );
[90] Fix | Delete
$allowed_files['style.css'] = $style_files['style.css'];
[91] Fix | Delete
$allowed_files += $style_files;
[92] Fix | Delete
break;
[93] Fix | Delete
default:
[94] Fix | Delete
$allowed_files += $theme->get_files( $type, -1 );
[95] Fix | Delete
break;
[96] Fix | Delete
}
[97] Fix | Delete
}
[98] Fix | Delete
[99] Fix | Delete
// Move functions.php and style.css to the top.
[100] Fix | Delete
if ( isset( $allowed_files['functions.php'] ) ) {
[101] Fix | Delete
$allowed_files = array( 'functions.php' => $allowed_files['functions.php'] ) + $allowed_files;
[102] Fix | Delete
}
[103] Fix | Delete
if ( isset( $allowed_files['style.css'] ) ) {
[104] Fix | Delete
$allowed_files = array( 'style.css' => $allowed_files['style.css'] ) + $allowed_files;
[105] Fix | Delete
}
[106] Fix | Delete
[107] Fix | Delete
if ( empty( $file ) ) {
[108] Fix | Delete
$relative_file = 'style.css';
[109] Fix | Delete
$file = $allowed_files['style.css'];
[110] Fix | Delete
} else {
[111] Fix | Delete
$relative_file = wp_unslash( $file );
[112] Fix | Delete
$file = $theme->get_stylesheet_directory() . '/' . $relative_file;
[113] Fix | Delete
}
[114] Fix | Delete
[115] Fix | Delete
validate_file_to_edit( $file, $allowed_files );
[116] Fix | Delete
[117] Fix | Delete
// Handle fallback editing of file when JavaScript is not available.
[118] Fix | Delete
$edit_error = null;
[119] Fix | Delete
$posted_content = null;
[120] Fix | Delete
[121] Fix | Delete
if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) {
[122] Fix | Delete
$r = wp_edit_theme_plugin_file( wp_unslash( $_POST ) );
[123] Fix | Delete
if ( is_wp_error( $r ) ) {
[124] Fix | Delete
$edit_error = $r;
[125] Fix | Delete
if ( check_ajax_referer( 'edit-theme_' . $stylesheet . '_' . $relative_file, 'nonce', false ) && isset( $_POST['newcontent'] ) ) {
[126] Fix | Delete
$posted_content = wp_unslash( $_POST['newcontent'] );
[127] Fix | Delete
}
[128] Fix | Delete
} else {
[129] Fix | Delete
wp_redirect(
[130] Fix | Delete
add_query_arg(
[131] Fix | Delete
array(
[132] Fix | Delete
'a' => 1, // This means "success" for some reason.
[133] Fix | Delete
'theme' => $stylesheet,
[134] Fix | Delete
'file' => $relative_file,
[135] Fix | Delete
),
[136] Fix | Delete
admin_url( 'theme-editor.php' )
[137] Fix | Delete
)
[138] Fix | Delete
);
[139] Fix | Delete
exit;
[140] Fix | Delete
}
[141] Fix | Delete
}
[142] Fix | Delete
[143] Fix | Delete
$settings = array(
[144] Fix | Delete
'codeEditor' => wp_enqueue_code_editor( compact( 'file' ) ),
[145] Fix | Delete
);
[146] Fix | Delete
wp_enqueue_script( 'wp-theme-plugin-editor' );
[147] Fix | Delete
wp_add_inline_script( 'wp-theme-plugin-editor', sprintf( 'jQuery( function( $ ) { wp.themePluginEditor.init( $( "#template" ), %s ); } )', wp_json_encode( $settings ) ) );
[148] Fix | Delete
wp_add_inline_script( 'wp-theme-plugin-editor', 'wp.themePluginEditor.themeOrPlugin = "theme";' );
[149] Fix | Delete
[150] Fix | Delete
require_once ABSPATH . 'wp-admin/admin-header.php';
[151] Fix | Delete
[152] Fix | Delete
update_recently_edited( $file );
[153] Fix | Delete
[154] Fix | Delete
if ( ! is_file( $file ) ) {
[155] Fix | Delete
$error = true;
[156] Fix | Delete
}
[157] Fix | Delete
[158] Fix | Delete
$content = '';
[159] Fix | Delete
if ( ! empty( $posted_content ) ) {
[160] Fix | Delete
$content = $posted_content;
[161] Fix | Delete
} elseif ( ! $error && filesize( $file ) > 0 ) {
[162] Fix | Delete
$f = fopen( $file, 'r' );
[163] Fix | Delete
$content = fread( $f, filesize( $file ) );
[164] Fix | Delete
[165] Fix | Delete
if ( str_ends_with( $file, '.php' ) ) {
[166] Fix | Delete
$functions = wp_doc_link_parse( $content );
[167] Fix | Delete
[168] Fix | Delete
if ( ! empty( $functions ) ) {
[169] Fix | Delete
$docs_select = '<select name="docs-list" id="docs-list">';
[170] Fix | Delete
$docs_select .= '<option value="">' . esc_html__( 'Function Name&hellip;' ) . '</option>';
[171] Fix | Delete
[172] Fix | Delete
foreach ( $functions as $function ) {
[173] Fix | Delete
$docs_select .= '<option value="' . esc_attr( $function ) . '">' . esc_html( $function ) . '()</option>';
[174] Fix | Delete
}
[175] Fix | Delete
[176] Fix | Delete
$docs_select .= '</select>';
[177] Fix | Delete
}
[178] Fix | Delete
}
[179] Fix | Delete
[180] Fix | Delete
$content = esc_textarea( $content );
[181] Fix | Delete
}
[182] Fix | Delete
[183] Fix | Delete
$file_description = get_file_description( $relative_file );
[184] Fix | Delete
$file_show = array_search( $file, array_filter( $allowed_files ), true );
[185] Fix | Delete
$description = esc_html( $file_description );
[186] Fix | Delete
if ( $file_description !== $file_show ) {
[187] Fix | Delete
$description .= ' <span>(' . esc_html( $file_show ) . ')</span>';
[188] Fix | Delete
}
[189] Fix | Delete
?>
[190] Fix | Delete
<div class="wrap">
[191] Fix | Delete
<h1><?php echo esc_html( $title ); ?></h1>
[192] Fix | Delete
[193] Fix | Delete
<?php
[194] Fix | Delete
if ( isset( $_GET['a'] ) ) {
[195] Fix | Delete
wp_admin_notice(
[196] Fix | Delete
__( 'File edited successfully.' ),
[197] Fix | Delete
array(
[198] Fix | Delete
'id' => 'message',
[199] Fix | Delete
'dismissible' => true,
[200] Fix | Delete
'additional_classes' => array( 'updated' ),
[201] Fix | Delete
)
[202] Fix | Delete
);
[203] Fix | Delete
} elseif ( is_wp_error( $edit_error ) ) {
[204] Fix | Delete
$error_code = esc_html( $edit_error->get_error_message() ? $edit_error->get_error_message() : $edit_error->get_error_code() );
[205] Fix | Delete
$message = '<p>' . __( 'There was an error while trying to update the file. You may need to fix something and try updating again.' ) . '</p>
[206] Fix | Delete
<pre>' . $error_code . '</pre>';
[207] Fix | Delete
wp_admin_notice(
[208] Fix | Delete
$message,
[209] Fix | Delete
array(
[210] Fix | Delete
'type' => 'error',
[211] Fix | Delete
'id' => 'message',
[212] Fix | Delete
)
[213] Fix | Delete
);
[214] Fix | Delete
}
[215] Fix | Delete
[216] Fix | Delete
if ( preg_match( '/\.css$/', $file ) && ! wp_is_block_theme() && current_user_can( 'customize' ) ) {
[217] Fix | Delete
$message = '<p><strong>' . __( 'Did you know?' ) . '</strong></p><p>' . sprintf(
[218] Fix | Delete
/* translators: %s: Link to Custom CSS section in the Customizer. */
[219] Fix | Delete
__( 'There is no need to change your CSS here &mdash; you can edit and live preview CSS changes in the <a href="%s">built-in CSS editor</a>.' ),
[220] Fix | Delete
esc_url( add_query_arg( 'autofocus[section]', 'custom_css', admin_url( 'customize.php' ) ) )
[221] Fix | Delete
) . '</p>';
[222] Fix | Delete
wp_admin_notice(
[223] Fix | Delete
$message,
[224] Fix | Delete
array(
[225] Fix | Delete
'type' => 'info',
[226] Fix | Delete
'id' => 'message',
[227] Fix | Delete
)
[228] Fix | Delete
);
[229] Fix | Delete
}
[230] Fix | Delete
?>
[231] Fix | Delete
[232] Fix | Delete
<div class="fileedit-sub">
[233] Fix | Delete
<div class="alignleft">
[234] Fix | Delete
<h2>
[235] Fix | Delete
<?php
[236] Fix | Delete
echo $theme->display( 'Name' );
[237] Fix | Delete
if ( $description ) {
[238] Fix | Delete
echo ': ' . $description;
[239] Fix | Delete
}
[240] Fix | Delete
?>
[241] Fix | Delete
</h2>
[242] Fix | Delete
</div>
[243] Fix | Delete
<div class="alignright">
[244] Fix | Delete
<form action="theme-editor.php" method="get">
[245] Fix | Delete
<label for="theme" id="theme-plugin-editor-selector"><?php _e( 'Select theme to edit:' ); ?> </label>
[246] Fix | Delete
<select name="theme" id="theme">
[247] Fix | Delete
<?php
[248] Fix | Delete
foreach ( wp_get_themes( array( 'errors' => null ) ) as $a_stylesheet => $a_theme ) {
[249] Fix | Delete
if ( $a_theme->errors() && 'theme_no_stylesheet' === $a_theme->errors()->get_error_code() ) {
[250] Fix | Delete
continue;
[251] Fix | Delete
}
[252] Fix | Delete
[253] Fix | Delete
$selected = ( $a_stylesheet === $stylesheet ) ? ' selected="selected"' : '';
[254] Fix | Delete
echo "\n\t" . '<option value="' . esc_attr( $a_stylesheet ) . '"' . $selected . '>' . $a_theme->display( 'Name' ) . '</option>';
[255] Fix | Delete
}
[256] Fix | Delete
?>
[257] Fix | Delete
</select>
[258] Fix | Delete
<?php submit_button( __( 'Select' ), '', 'Submit', false ); ?>
[259] Fix | Delete
</form>
[260] Fix | Delete
</div>
[261] Fix | Delete
<br class="clear" />
[262] Fix | Delete
</div>
[263] Fix | Delete
[264] Fix | Delete
<?php
[265] Fix | Delete
if ( $theme->errors() ) {
[266] Fix | Delete
wp_admin_notice(
[267] Fix | Delete
'<strong>' . __( 'This theme is broken.' ) . '</strong> ' . $theme->errors()->get_error_message(),
[268] Fix | Delete
array(
[269] Fix | Delete
'additional_classes' => array( 'error' ),
[270] Fix | Delete
)
[271] Fix | Delete
);
[272] Fix | Delete
}
[273] Fix | Delete
?>
[274] Fix | Delete
[275] Fix | Delete
<div id="templateside">
[276] Fix | Delete
<h2 id="theme-files-label"><?php _e( 'Theme Files' ); ?></h2>
[277] Fix | Delete
<ul role="tree" aria-labelledby="theme-files-label">
[278] Fix | Delete
<?php if ( $theme->parent() ) : ?>
[279] Fix | Delete
<li class="howto">
[280] Fix | Delete
<?php
[281] Fix | Delete
printf(
[282] Fix | Delete
/* translators: %s: Link to edit parent theme. */
[283] Fix | Delete
__( 'This child theme inherits templates from a parent theme, %s.' ),
[284] Fix | Delete
sprintf(
[285] Fix | Delete
'<a href="%s">%s</a>',
[286] Fix | Delete
self_admin_url( 'theme-editor.php?theme=' . urlencode( $theme->get_template() ) ),
[287] Fix | Delete
$theme->parent()->display( 'Name' )
[288] Fix | Delete
)
[289] Fix | Delete
);
[290] Fix | Delete
?>
[291] Fix | Delete
</li>
[292] Fix | Delete
<?php endif; ?>
[293] Fix | Delete
<li role="treeitem" tabindex="-1" aria-expanded="true" aria-level="1" aria-posinset="1" aria-setsize="1">
[294] Fix | Delete
<ul role="group">
[295] Fix | Delete
<?php wp_print_theme_file_tree( wp_make_theme_file_tree( $allowed_files ) ); ?>
[296] Fix | Delete
</ul>
[297] Fix | Delete
</li>
[298] Fix | Delete
</ul>
[299] Fix | Delete
</div>
[300] Fix | Delete
[301] Fix | Delete
<?php
[302] Fix | Delete
if ( $error ) :
[303] Fix | Delete
wp_admin_notice(
[304] Fix | Delete
__( 'File does not exist! Please double check the name and try again.' ),
[305] Fix | Delete
array(
[306] Fix | Delete
'additional_classes' => array( 'error' ),
[307] Fix | Delete
)
[308] Fix | Delete
);
[309] Fix | Delete
else :
[310] Fix | Delete
?>
[311] Fix | Delete
<form name="template" id="template" action="theme-editor.php" method="post">
[312] Fix | Delete
<?php wp_nonce_field( 'edit-theme_' . $stylesheet . '_' . $relative_file, 'nonce' ); ?>
[313] Fix | Delete
<div>
[314] Fix | Delete
<label for="newcontent" id="theme-plugin-editor-label"><?php _e( 'Selected file content:' ); ?></label>
[315] Fix | Delete
<textarea cols="70" rows="30" name="newcontent" id="newcontent" aria-describedby="editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4"><?php echo $content; ?></textarea>
[316] Fix | Delete
<input type="hidden" name="action" value="update" />
[317] Fix | Delete
<input type="hidden" name="file" value="<?php echo esc_attr( $relative_file ); ?>" />
[318] Fix | Delete
<input type="hidden" name="theme" value="<?php echo esc_attr( $theme->get_stylesheet() ); ?>" />
[319] Fix | Delete
</div>
[320] Fix | Delete
[321] Fix | Delete
<?php if ( ! empty( $functions ) ) : ?>
[322] Fix | Delete
<div id="documentation" class="hide-if-no-js">
[323] Fix | Delete
<label for="docs-list"><?php _e( 'Documentation:' ); ?></label>
[324] Fix | Delete
<?php echo $docs_select; ?>
[325] Fix | Delete
<input disabled id="docs-lookup" type="button" class="button" value="<?php esc_attr_e( 'Look Up' ); ?>" onclick="if ( '' !== jQuery('#docs-list').val() ) { window.open( 'https://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_user_locale() ); ?>&amp;version=<?php echo urlencode( get_bloginfo( 'version' ) ); ?>&amp;redirect=true'); }" />
[326] Fix | Delete
</div>
[327] Fix | Delete
<?php endif; ?>
[328] Fix | Delete
[329] Fix | Delete
<div>
[330] Fix | Delete
<div class="editor-notices">
[331] Fix | Delete
<?php
[332] Fix | Delete
if ( is_child_theme() && $theme->get_stylesheet() === get_template() ) :
[333] Fix | Delete
$message = ( is_writable( $file ) ) ? '<strong>' . __( 'Caution:' ) . '</strong> ' : '';
[334] Fix | Delete
$message .= __( 'This is a file in your current parent theme.' );
[335] Fix | Delete
wp_admin_notice(
[336] Fix | Delete
$message,
[337] Fix | Delete
array(
[338] Fix | Delete
'type' => 'warning',
[339] Fix | Delete
'additional_classes' => array( 'inline' ),
[340] Fix | Delete
)
[341] Fix | Delete
);
[342] Fix | Delete
endif;
[343] Fix | Delete
?>
[344] Fix | Delete
</div>
[345] Fix | Delete
<?php
[346] Fix | Delete
if ( is_writable( $file ) ) {
[347] Fix | Delete
?>
[348] Fix | Delete
<p class="submit">
[349] Fix | Delete
<?php submit_button( __( 'Update File' ), 'primary', 'submit', false ); ?>
[350] Fix | Delete
<span class="spinner"></span>
[351] Fix | Delete
</p>
[352] Fix | Delete
<?php
[353] Fix | Delete
} else {
[354] Fix | Delete
?>
[355] Fix | Delete
<p>
[356] Fix | Delete
<?php
[357] Fix | Delete
printf(
[358] Fix | Delete
/* translators: %s: Documentation URL. */
[359] Fix | Delete
__( 'You need to make this file writable before you can save your changes. See <a href="%s">Changing File Permissions</a> for more information.' ),
[360] Fix | Delete
__( 'https://developer.wordpress.org/advanced-administration/server/file-permissions/' )
[361] Fix | Delete
);
[362] Fix | Delete
?>
[363] Fix | Delete
</p>
[364] Fix | Delete
<?php
[365] Fix | Delete
}
[366] Fix | Delete
?>
[367] Fix | Delete
</div>
[368] Fix | Delete
[369] Fix | Delete
<?php wp_print_file_editor_templates(); ?>
[370] Fix | Delete
</form>
[371] Fix | Delete
<?php
[372] Fix | Delete
endif; // End if $error.
[373] Fix | Delete
?>
[374] Fix | Delete
<br class="clear" />
[375] Fix | Delete
</div>
[376] Fix | Delete
<?php
[377] Fix | Delete
$dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
[378] Fix | Delete
if ( ! in_array( 'theme_editor_notice', $dismissed_pointers, true ) ) {
[379] Fix | Delete
// Get a back URL.
[380] Fix | Delete
$referer = wp_get_referer();
[381] Fix | Delete
[382] Fix | Delete
$excluded_referer_basenames = array( 'theme-editor.php', 'wp-login.php' );
[383] Fix | Delete
[384] Fix | Delete
$return_url = admin_url( '/' );
[385] Fix | Delete
if ( $referer ) {
[386] Fix | Delete
$referer_path = parse_url( $referer, PHP_URL_PATH );
[387] Fix | Delete
if ( is_string( $referer_path ) && ! in_array( basename( $referer_path ), $excluded_referer_basenames, true ) ) {
[388] Fix | Delete
$return_url = $referer;
[389] Fix | Delete
}
[390] Fix | Delete
}
[391] Fix | Delete
?>
[392] Fix | Delete
<div id="file-editor-warning" class="notification-dialog-wrap file-editor-warning hide-if-no-js hidden">
[393] Fix | Delete
<div class="notification-dialog-background"></div>
[394] Fix | Delete
<div class="notification-dialog">
[395] Fix | Delete
<div class="file-editor-warning-content">
[396] Fix | Delete
<div class="file-editor-warning-message">
[397] Fix | Delete
<h1><?php _e( 'Heads up!' ); ?></h1>
[398] Fix | Delete
<p>
[399] Fix | Delete
<?php
[400] Fix | Delete
_e( 'You appear to be making direct edits to your theme in the WordPress dashboard. It is not recommended! Editing your theme directly could break your site and your changes may be lost in future updates.' );
[401] Fix | Delete
?>
[402] Fix | Delete
</p>
[403] Fix | Delete
<?php
[404] Fix | Delete
if ( ! $theme->parent() ) {
[405] Fix | Delete
echo '<p>';
[406] Fix | Delete
printf(
[407] Fix | Delete
/* translators: %s: Link to documentation on child themes. */
[408] Fix | Delete
__( 'If you need to tweak more than your theme&#8217;s CSS, you might want to try <a href="%s">making a child theme</a>.' ),
[409] Fix | Delete
esc_url( __( 'https://developer.wordpress.org/themes/advanced-topics/child-themes/' ) )
[410] Fix | Delete
);
[411] Fix | Delete
echo '</p>';
[412] Fix | Delete
}
[413] Fix | Delete
?>
[414] Fix | Delete
<p><?php _e( 'If you decide to go ahead with direct edits anyway, use a file manager to create a copy with a new name and hang on to the original. That way, you can re-enable a functional version if something goes wrong.' ); ?></p>
[415] Fix | Delete
</div>
[416] Fix | Delete
<p>
[417] Fix | Delete
<a class="button file-editor-warning-go-back" href="<?php echo esc_url( $return_url ); ?>"><?php _e( 'Go back' ); ?></a>
[418] Fix | Delete
<button type="button" class="file-editor-warning-dismiss button button-primary"><?php _e( 'I understand' ); ?></button>
[419] Fix | Delete
</p>
[420] Fix | Delete
</div>
[421] Fix | Delete
</div>
[422] Fix | Delete
</div>
[423] Fix | Delete
<?php
[424] Fix | Delete
} // Editor warning notice.
[425] Fix | Delete
[426] Fix | Delete
require_once ABSPATH . 'wp-admin/admin-footer.php';
[427] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function