The Way to Programming
The Way to Programming
I’m getting error in my theme after set debug true can any body help me to resolve them
Notice: Undefined index: in C:\xampp\htdocs\wp\wp-content\themes\mytheme\functions.php on line 396
Notice: Undefined index: id in C:\xampp\htdocs\wp\wp-content\themes\mytheme\functions.php on line 399
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wp\wp-content\themes\mytheme\functions.php:396) in C:\xampp\htdocs\wp\wp-content\themes\mytheme\functions.php on line 401
Here is my function.php from line 386 to 419
function mytheme_add_admin() { global $themename, $shortname, $options; if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) ) { if ( 'save' == ( isset($_REQUEST['action'] ) && $_REQUEST['action'] ) ) { foreach ($options as $value) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } foreach ($options as $value) { if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } } header("Location: admin.php?page=functions.php&saved=true"); header("Location: themes.php?page=functions.php&saved=true"); die; } else if ( 'reset' == ( isset($_REQUEST['action'] ) && $_REQUEST['action'] ) ) { foreach ($options as $value) { delete_option( $value['id'] ); } header("Location: admin.php?page=functions.php&reset=true"); header("Location: themes.php?page=functions.php&reset=true"); die; } } add_theme_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin');
You should try to buffer output first. as being a wp theme, headers are already sent, more exactly when u use update_option function.
try:
ob_start("ob_gzhandler"); header("Location: admin.php?page=functions.php&saved=true"); header("Location: themes.php?page=functions.php&saved=true"); exit; ob_flush();
still, I didn’t understood what you want to achieve with this function. GL.
well, this is quite simple to explain :
in this section :
function mytheme_add_admin() { global $themename, $shortname, $options; if ( isset($_GET['page']) && $_GET['page'] == basename(__FILE__) ) { if ( 'save' == ( isset($_REQUEST['action'] ) && $_REQUEST['action'] ) ) { foreach ($options as $value) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } foreach ($options as $value) { if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } } header("Location: admin.php?page=functions.php&saved=true"); header("Location: themes.php?page=functions.php&saved=true"); die; } else if ( 'reset' == ( isset($_REQUEST['action'] ) && $_REQUEST['action'] ) ) { foreach ($options as $value) { delete_option( $value['id'] ); } header("Location: admin.php?page=functions.php&reset=true"); header("Location: themes.php?page=functions.php&reset=true"); die; } } add_theme_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin'); }
you have a header() function , which is being called at some point in the script , the problem here is :
a header has already been sent, hence the warning …
If you want to clear the errors, either suppress them , or move the code to the top of the php file BEFORE any output is generated
Script and html not allow in admin panel that because of sanitization
here is script to work
/* * This is an example of how to override a default filter * for 'textarea' sanitization and $allowedposttags + embed and script. */ add_action('admin_init','optionscheck_change_santiziation', 100); function optionscheck_change_santiziation() { remove_filter( 'of_sanitize_textarea', 'of_sanitize_textarea' ); add_filter( 'of_sanitize_textarea', 'custom_sanitize_textarea' ); } function custom_sanitize_textarea($input) { global $allowedposttags; $custom_allowedtags["script"] = array( "src" => array() ); $custom_allowedtags = array_merge($custom_allowedtags, $allowedposttags); $output = wp_kses( $input, $custom_allowedtags); return $output; }
Sign in to your account