• User Attivo

    Come creare pannello back-end per inserire un campo?

    Ciao ragazzi,
    avrei bisogno di creare un pannellino da backend (NON dentro all'editing pagine o ai post) in cui poter compilare un semplice campo di testo che dovrà essere printato nel footer. Non vi chiedo ovviamente tutto nel dettaglio, però mi piacerebbe capire il flusso da seguire (poi mi cerco i tutorials) ed i vari step da intraprendere. Grazie mille 😉


  • User Attivo

    Ciao gleenk, ti semplifico un po' il lavoro 😉
    Questo codice va inserito nel functions.php del tema

    [php]
    add_action('admin_menu', 'my_admin_menu');
    function my_admin_menu() {
    //logica di aggiornamento inserimento campo
    }

    add_theme_page("Impostazioni", "Impostazioni", 'edit_theme_options', basename(__FILE__), 'mytheme_admin');
    

    }
    function mytheme_admin(){
    //creo il backend con i miei campi personalizzati
    <form method="post">
    <input name="miocampo" type="text" />
    </form>
    }
    [/php]
    Per recuperare il valore del campo all'interna del tema, utilizza il metodo get_option('nomecampo')


  • User Attivo

    Waaaaaa grazie mille, proverò. stramitico 😄


  • User Attivo

    Ehm mi sfugge però che cosa intendi per //logica di aggiornamento inserimento campo ?


  • User Attivo

    Devi validare i dati e se sono corretti inserirli... In caso i dati siano già presenti, li devi invece aggiornare...
    [php]

    function my_admin_menu() {

    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;
    
        }
    }
    

    [/php]