Ошибка Undefined index: page

В файле шаблона имеется код

/*Add a Theme Options Page*/
function mytheme_add_admin() {

    global $themename, $shortname, $options;

    if ( $_GET['page'] == basename(__FILE__) ) {

        if ( 'save' == $_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: themes.php?page=functions.php&saved=true");
                die;

        } else if( 'reset' == $_REQUEST['action'] ) {

            foreach ($options as $value) {
                delete_option( $value['id'] ); }

            header("Location: themes.php?page=functions.php&reset=true");
            die;

        }
    }

    add_theme_page($themename." Options", "".$themename." Options", 'edit_themes', basename(__FILE__), 'mytheme_admin');

}

строка if ( $_GET['page'] == basename(__FILE__) ) { выдаёт ошибку Undefined index: page

В поисках решения, нашёл эту ветку https://stackoverflow.com/questions/12468275/undefined-index-page-in но, ошибка исчезает, а тема меняется на дефолтную и я её не могу включить. В итоге откатился назад к этой ошибке.

Любой ваш совет будет принят во внимание.


Ответы (1 шт):

Автор решения: Вадим Александру

В url нет такого GET параметра как page. Т.е mysite.com?page=page

Вам нужно предусмотреть логику работы скрипта в таком случае. К примеру Вместо

if ( $_GET['page'] == basename(__FILE__) ) {
  //code
}

К примеру

$page = $_GET['page'] ?? null;
if ($page == basename(__FILE__) ) {
  //code
}

Либо

if (isset($_GET['page']) && $_GET['page'] == basename(__FILE__) ) {
  //code
}
→ Ссылка