Un Header Pieno di Opzioni

Un Header Pieno di Opzioni – Parte 1

Benvenuti ad un nuovo appuntamento con Costruiamo un template WordPress, da Zero, in questa puntata andremo ad apprendere molto di più di quello che vi potreste aspettare. Molti di voi avranno pensato che all'interno dell'elemento <header> saremmo andati ad inserire il titolo del blog e collegato un logo editando del semplice HTML.  

Questo era più che sufficente 5 anni fa! Quando WordPress ancora non forniva alcune funzioni che ci permettono di facilitare il caricamento del logo direttamente dal Pannello di Amministrazione, funzionalità questa, che renderà la nostra template molto più personalizzabile, visto che ogni utente che la installerà sarà in grado di caricare il proprio logo!

L’intero corso è diventato anche un ebook! Non perdere l’occasione di portare sempre con te tutta la conoscenza racchiusa al suo interno cliccando semplicemente su questo link!

Una Leggera Teoria

Prima di partire allo sbaraglio tuffandoci nel codice, vorrei puntare la vostra attenzione sul metodo che andremo ad utilizzare ed introdurvi alcune terminologie che sicuramente saranno utili nello sviluppo delle vostre future template. Per prima cosa cerchiamo di capire cosa andremo a fare.

Proprio come è già presente all’interno del magnifico template di default Twenty Eleven, e dal quale andremo a prendere ispirazione, creeremo una voce all’interno del nostro pannello di amministrazione, sezione Aspetto, chiamata Impostazioni Tema che racchiuderà tutte le opzioni della nostra template.

Come andremo a vedere, la funzione che ci permetterà di creare la nostra pagina di opzioni è add_theme_page() una funzione che ci permetterà sia di definire alcune variabili vitali, ma anche quella di collegare una funzione che sarà incaricata di mostrare la nostra nuova pagina!

Creiamo la nostra pagina Impostazioni Tema

Conclusioni

Ho deciso di terminare quà questa puntata per diversi motivi, primo tra i quali il fatto di avere già a disposizione diversi articoli che vi introdurranno alle Settings API, inoltre potrete testare immediatamente il vostro upload visto che grazie alla funzione testo_sezione_cb() avremo una preview della nostra immagine appena creata direttamente nella nostra pagina opzioni.

Ma per sapere come caricare l’immagine appena caricata vi invito ad aspettare la prossima puntata!

Lascia il tuo Pensiero

62 Responses to “Un Header Pieno di Opzioni – Parte 1”

  1. Barbara

    prima di tutto è meglio che scrivi che si deve aprire le pagine php con la riga di comando apposita (ovvero: <?php ) , purtroppo non tutti sono afferrati sul php e magari non lo danno per scontato.

    ^^ adesso guardiamo la prossima guida

    Rispondi
    • Andrea Barghigiani

      Tendenzialmente evito di inserire i tag < ?php e ?> semplicemente perché, durante la lezione, vado a modificare i file in parti differenti e quindi potrebbero aggiungere questi tag facendo un copia/incolla e sballando completamente il loro file .php.

      Inoltre, in ogni lezione, offro un link all’archivio .zip che racchiude al suo interno tutti i file che sono necessari alla lezione e pensavo che da quelli potessero capire e seguire, anche meglio, la lezione.

      Cmq grazie per il tuo commento, mi hai dato alcune idee per migliorare il sito 😀

      Rispondi
  2. Barbara

    provado il link sull’admin “impostazione tema”, non mi carica nulla…
    sinceramente non ho idea di quale sia il motivo.. forse si risolve compilando le funzioni della prossima guida..boh

    Rispondi
      • Andrea Barghigiani

        Non ho ben capito questo tuo dubbio, ma provo a risponderti lo stesso.
        A quanto ho capito, mi stai chiedendo perché la nuova voce che abbiamo inserito all’interno delle opzioni Aspetto punta soltanto alla pagina themes.php. La risposta è data dal fatto che in questa lezione stiamo utilizzando la funzione add_theme_page() e questo ci permette di puntare direttamente alla pagina in questione.

        Avremmo potuto anche utilizare la funzione add_menu_page(), ma avrebbe richiesto l’uso di un parametro aggiuntivo e ho preferito la più diretta per non confondere troppo le idee…

        Per qualsiasi altro problema ricontattami pure, ti lascio anche il mio Skype: andreabarghigiani

        Ciao e a presto.

        Rispondi
    • Andrea Barghigiani

      In questa lezione mostro che l’immagine viene visualizzata come preview all’interno del pannello di amministrazione, nella prossima mostro come sia possibile richiamarla all’interno del tema.

      Rispondi
  3. Barbara

    No, il problema che mi pongo è perchè non mi carica la pagina “impostazioni tema”.

    sto ricontrollando anche tramite il video i passaggi ( che tra l’altro in questa pagina punta alla lezione 2 invece che alla 5… infatti me lo ero persa).

    Quindi, intanto avviso che il codice dell’argomento:

    “Prepariamo il Tema alla sua Traduzione”

    è leggermente differente tra quello postato e quello nel video: in specifico non è presente la riga che apre la funzione “localizzo_tema” e quella che segue con il richiamo sucessivo.

    Purtroppo, per chi non è esperto di php è difficile intuire cosa dovrebbe esserci e cosa no.
    Io trovo più comodo avere una visione a “pacchetto”
    ovvero un pacchetto di varie righe che io associo grazie ai commenti alla funzione specifica di quell’ azione.

    lo so che i video spiegano già tutto, però se fai le descrizioni nell’articolo, le devi fare in modo che si comprenda anche per chi non guarda il video..

    comunque grazie della guida ^^ me la sto leggendo piano piano.

    Rispondi
    • Andrea Barghigiani

      Si Barbara, in effetti quella sezione è trattata in maniera differente semplicemente perché non è lo scopo di questo corso quello di andare a preparare un tema per un eventuale traduzione, l’ho voluto aggiungere per completezza ma, come mi fai capire, non ho fatto altro che incasinarvi ancora di più 😀

      Questo è un insegnamento che terrò presente per i prossimi corsi e sopratutto mi aiuterà a controllare la voglia di dire tutto eheheheheeheh

      Grazie comunque per il tuo feedback, prova pure a scaricare i file del tema e sostituirli ai tuoi per vedere se è proprio il mio codice sbagliato… Quando ho realizzato la guida tutto funzionava correttamente e non mi sembra che ci siano stati aggiornamenti WordPress che potrebbero compromettere la lezione ma, se dovesse essere un mio errore, dimmelo che porgo rimedio 🙂

      Rispondi
      • Barbara

        no no, metti pure tutto!!!! preimpostare un tema per utilizzarlo in diverse lingue è un ottima cosa!

        ho scaricato il tuo pacchetto lezione 5 ed ho copiato il codice in modo che sia corretto.
        la mia domanda è : caricato il file tema sul sito, la pagina “impostazione tema” è visualizzata ?

        perchè io clicco sul link e non mi carica nessuna nuova pagina, ma rimane anzi nella selezione di quale tema attivare.

        ho fatto che copiare direttamente il tuo pacchetto zip e installare il tuo tema.
        stesso problema…

        sai darmi qualche soluzione?
        lo sto provando su un server locale; la versione WP è 3.4.2.
        versione pulita con nessun plugin installato.

        Rispondi
        • Andrea Barghigiani

          Ho appena fatto i tuoi passaggi, scaicato il file .zip e installato in una nuova cartella e devo dire che tutto funziona correttamente.

          Ho anche provato a fare l’installazione del tema su una beta di WordPress 3.5 che sto sperimentando in questi giorni, qua puoi trovare un’immagine, e devo dire che tutto è filato liscio e che riesco a vedere la pagina con le impostazioni.

          Se vuoi un consiglio, scarica il file .zip, scompattalo (non installarlo direttamente), rinomina il nome del template all’interno del file style.css (la voce si chiama Theme Name) magari con PincoPallino.

          A questo punto copia la cartella all’interno della tua cartella themes dell’installazione WordPress, la trovi in /wp-content/themes, e soltanto a questo punto accedi al pannello di amministrazione. Vai su Aspetto -> Temi e seleziona PincoPallino.

          Ora puoi controllare se la pagina Impostazioni Tema viene visualizzata come nell’immagine che ho collegato.
          Fammi sapere se hai risolto!

          Rispondi
      • Barbara

        è buffo.. buffo e non voglio nemmeno immaginare quale sia il problema!

        semplice, ho fatto come mi hai detto, ho provato anche con la lezione 6.. ecc.
        SUL SERVER LOCALE NON CARICA

        ma!!! SUL SERVER ONLINE CARICA!
        quindi online funziona.
        non ho idea di cosa sia.. magari qualche valore del php.. qualche estensione vecchia.
        localmente ho installato il pacchetto autoinstallante XAMPP v3.1.0 (di settembre 2012. ho installato, installato apache e mysql e attivato..

        ok, dai andiamo avanti a creare sto tema ^^.

        p.s. c’è una registrazione su sto blog? avrei bisogno di un avviso di risposta via email ..se no mi perdo sicuramente delle risposte.

        Rispondi
        • Vincenzo

          Ho avuto lo stesso problema. Si è risolto sostituendo l’istruzione:
          ‘__FILE__’
          con:
          ‘impostazioni_tema’ oppure ‘read’
          Ma non ci ho capito molto; e non vorrei che la situazione mi creasse problemi in futuro visto che __FILE__ compare da altre parti nel programma.

          Rispondi
          • Andrea Barghigiani

            Ciao Vincenzo,

            grazie mille per questo tuo suggerimento! Io ho provato anche a guardare un po’ in giro ma non avevo notato questa lieve differenza.

            Per quanto riguarda utilizzare __FILE__ puoi usarlo ovunque tu abbia bisogno della URL del file stesso, in poche parole, questa è una costante ed ha sempre il valore della URL del file sul quale viene richiamato.

            Molto probabilmente i problemi di Barbara erano dovute dal fatto che le impostazioni del suo server non gli permettessero di ottenere automaticamente la URL e grazie alla tua soluzione è possibile risolvere.

            Grazie mille davvero! Grazie a questa tua dritta posso sistemare questo problema dal quale non sapevo proprio uscire!

          • VINCENZO

            Quindi, considerando che le impostazioni del server non permettono di ottenere l’URL in modo automatico, ogni volta che nelle tue lezioni incontro __FILE__ devo inserire al suo posto il nome del file dove è inserita l’istruzione (che è ‘Impostazioni_tema’ in questo caso) altrimenti non carica. Giusto?
            P.s.: la soluzione è tutta tua. Ho visto la pillola che spiega add_theme_page ed in quella non c’è __FILE__ ma ‘Impostazioni_tema’. Quando ho visto che non caricava ho messo quella. 🙂

          • Andrea Barghigiani

            Non avevo controllato bene il codice (appena mandato questo commento correggo anche quello). Il problema qua è che io sto utilizzando __FILE__ per dare uno slug (nomignolo) alla nuova pagina di impostazioni per il tema, questo vuol dire che __FILE__ verrà letto dal PHP come qualcosa di questo tipo: /wp-content/themes/tuo-tema/tuo-file.php.

            Questo genera sicuramente uno slug unico ma in alcuni sistemi potrebbe dare dei problemi proprio per come viene generata la stringa di testo. In questo caso è più che corretto sostituire __FILE__ con qualcosa come ‘impostazioni-tema’ ma fai attenzione perché negli altri esempi questa costante è molto utile proprio perché ti permette di raggiungere il file sul quale stai lavorando.

            Grazie ancora per la dritta e per avermi fatto notare che era qualcosa che avevo già fatto 😉

            A presto.

          • alberto talamoni

            si perchè wordpress funziona con url ‘assoluti’ e non relativi, quindi in locale devo cambiare i parametri e mettere localhost o l’indirizzo interno e nn http://www.mioblog.it. Sono alle prime armi e mettere __FILE__non lo sapevo! Grazie per la guida

  4. mar

    ciao, scusa dov è che posso scaricare anche io il pacchetto della lezione 5? volevo fare un confronto, perchè
    seguando tutto alla lettere come risultato ho questo quando provo a caricare il logo:

    Fatal error: Call to undefined function wpam_handle_upload() in /web/htdocs/xxxxxxxxx.xx/home/wordpress/wp-content/themes/template-word/inc/impostazioni_tema.php on line 61

    Rispondi
    • mar

      credo di aver trovato cercando su google, la funzione è wp_handle_upload(). nel tuo esempio invece hai scritto wpam_handle_upload()

      Rispondi
      • Andrea Barghigiani

        Beh che dire? Non mi resta che ringraziarti!!

        Ringraziarti perché mi hai aiutato a trovare un errore che altrimenti sarebbe stato difficile da trovare dato che nel file .zip il codice è corretto. Permettimi di scusarmi per averti fatto perdere del tempo nella ricerca, cercherò di stare più attento la prossima volta!

        Grazie per leggere i miei articoli.

        Rispondi
    • Andrea Barghigiani

      Ciao mar,

      per scaricare il file .zip di questa lezione trovi un pulsante in alto che prende il nome di Down. Insieme a quello trovi anche un altro bottone che invece ti permetterà di vedere il video allegato a questa lezione.

      Rispondi
  5. carlo

    ciao andrea, complimenti per le guide
    premetto che sono novello novello di wordpress e che di php e java non capisco un’acca, però, seguendo la tua guida, ed anche scaricando il zip di questa lezione, ogni volta che vado a clicccare su aspetto –>impostazione tema inevitabilmente ottengo:
    “Devi farti autorizzare per accedere a questa pagina.”

    al momento ho montato wp 3.5 su lamp, settati tutti i permessi a 777, e guardando sul sito di wp add theme page mi dice:
    NOTE: If you’re running into the »You do not have sufficient permissions to access this page.« message in a wp_die() screen, then you’ve hooked too early. The hook, you should use is admin_menu.

    ora, add action admin menu è presente nel file impostazioni tema, e lo stesso risultato lo ottengo pure mettendo quella riga di codice prima della funzione add theme page…
    sto sbagliando qualcosa?
    grazie

    Rispondi
        • Andrea Barghigiani

          Ciao Carlo,

          scusa per l’attesa ma non mi è stato possibile risponderti prima. Mi fa piacere che tu abbia risolto il tuo problema anche da solo, congratulazioni! Parlando della funzione add_action() non è necessario utilizzare admin_menu per qualsiasi funzione, dipende sopratutto dal tipo di funzione.

          L’Action Hook admin_menu serve per lanciare le funzioni che vanno a modificare il menu del nostro pannello di amministrazione, come ad esempio le Impostazioni Tema che abbiamo creato in questa lezione. Ti suggerisco di dare una lettura, o visione, alla Pillola add_action() e di consultare l’articolo dove spiego che cosa sono gli Action Hook.

          Credo che con questi due articoli riuscirai a sviluppare una conoscenza maggiore di questi elementi. Se hai ancora bisogno di aiuto, sai dove trovarmi.

          A presto, Andrea.

          Rispondi
    • carlo

      scusate per il settordicesimo messagtgio che lascio, ma ho capito l’inghippo:

      se dal pannello dell’amministratore clicco su “Impostazioni tema” proprio sotto tema (dal menu a sx) mi da l’errore di cui sopra, ed anche se aggiungo tutte le add_function la pagina non viene visualizzata correttamente;

      se però clicco su impostazioni tema dalla “colonna principale” la pagina funziona

      certo che però è strano…

      Rispondi
      • Andrea Barghigiani

        Ciao Carlo,

        mi togli una curiosità? Hai già provato a seguire i passi nella prossima lezione? Forse non l’ho specificato chiaramente ma questa lezione è una prima parte, per fare in modo che le Impostazioni Tema funzionino correttamente devi aggiungere il codice che è presente nella prossima lezione.

        Correggo i titoli aggiungendo Parte 1 e Parte 2 per fare un pò di chiarezza…

        Fammi sapere se risolvi, mi raccomando!

        Rispondi
      • carlo

        ciao Andrea,
        ho messo pure le altre parti di codice, cosicché ora nella pagina vedo il mio logo, ma impostazioni del tema continua a funzionare in maniera bislacca… comeunqe “finché la barca va…”
        a proposito…. il logo dovrebbe essere largo 1024px?

        Rispondi
  6. Andrea Barghigiani

    Non necessariamente… Il logo può essere largo quanto ne hai bisogno. Il fatto è che il tema che stiamo realizzando non usa molto CSS, giusto un minimo per dare la struttura al template e quindi al momento le dimensioni del logo sono irrilevanti.

    Più avanti andrò a creare un corso completo su come sviluppare un tema WordPress con più CSS ma in questo volevo focalizzare l’attenzione sulle funzioni principali nella programmazione di questa piattaforma.

    Rispondi
  7. alessandro

    ragazzi aiutatemi vi prego?!?! a me a sopresa non mi fa accedere più al pannello wordpress del mio sito…mi dice “devi farti autorizzare per accedere a questa pagina”. così da un giorno all’altro…sono in crisi nera…il sito l’avevo fatto per un mio cliente….vi prego salvatemi!!! ;(

    Rispondi
    • Andrea Barghigiani

      Ciao Alessandro,

      con queste poche informazioni che ci hai passato non saremo in grado di aiutarti… Per prima cosa ti lascio un consiglio, prova a loggarti sempre dall’indirizzo http://nomesito.it/wp-admin/ se provi a loggarti all’interno di pagine interne qualche volta si crea un piccolo problema che ti impedisce l’accesso. Se anche questo non risolve il problema, ce qualcun altro che gestisce il sito oltre a te? Non è che sono stati rimossi i permessi di amministrazione?

      Se vuoi un consiglio spassionato, vai a questo forum e lascia il tuo problema al suo interno, ci sono molti altri professionisti WordPress che magari hanno già avuto un problema simile al tuo, e saranno in grado di risolverlo. Ma mi raccomando, sii dettagliato.

      In bocca al lupo.

      Rispondi
  8. Federico Viscioletti

    Ciao, volevo chiedere, se possibile, circa un possibile perfezionamento della pagina “Impostazioni Tema” creata in questa lezione.
    In particolare, mi piacerebbe sapere come potrei fare se volessi inserire un bottone che mi permetta di cancellare il logo inserito, e quindi di non visualizzare nulla a schermo (per intenderci neanche il tag img “vuoto”).
    Infine come si può fare a farsi passare da wordpress (non sò, magari tramite la variabile $opzioni) larghezza e altezza del logo caricato, in maniera di aggiustarlo in automatico tramite css nella pagina, qualsiasi sia la sua dimensione.

    Grazie mille in anticipo e complimenti per la guida davvero dettagliata 🙂

    Rispondi
    • Andrea Barghigiani

      Ciao Federico,

      sono argomenti un pò avanzati che, ad essere sincero, al momento non conosco neanche io. Tornerò su questo argomento più avanti perché in questa settimana sono veramente molto impegnato con un progetto da consegnare per un cliente.

      Intanto potresti sperimentare utilizzando la funzione var_dump() sulla variabile $opzioni, in questo modo var_dump( $opzioni ), che ti restituisce tutto quello che è contenuto al suo interno. Tu cerca per voci come width o height (che sono larghezza e altezza dell’immagine). Successivamente dovresti inserire questi valori all’interno del CSS ma, se devo essere sincero, non so ancora come si possa realizzare 🙂

      Mi documento un pò e appena ho la risposta torno ad aggiornare questo commento. Grazie mille intanto per i complimenti e per apprezzare queste lezioni, ne arriveranno altre ancor più interessanti!

      Rispondi
  9. Alessio

    Ho seguito tutta la guida passo passo,anche la parte 2,però se clicco sulla voce “Impostazioni Tema” del menù “Aspetto”,non succede nulla,come se mancasse un link di riferimento,mentre se clicco su Impostazioni Tema dalla pagina dei Temi,mi apre la pagina senza problemi.Ho notato che anche qualche altro utente aveva avuto questo problema,però non mi sembra di vedere una soluzione tra i commenti,puoi aiutarmi?

    Rispondi
  10. Marco

    Ciao, grazie alla tua guida sto imparando a creare il mio primo tema WordPress. A questo punto però sorge un problema: prima di continuare con la parte sulla traduzione, cliccando su “impostazioni tema” mi compare scritto: “Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘impostazioni_tema_cb’ was given in /membri/manganoprova1/wordpress/wp-includes/plugin.php on line 406”

    Non so preciso cosa voglia dire, sono andato a guardare il file plugin.php alla linea 406 e il codice è: “call_user_func_array($the_[‘function’], array_slice($args, 0, (int) $the_[‘accepted_args’]));”

    Rispondi
    • Andrea Barghigiani

      Ciao Marco,

      mi fa piacere che tu trovi il contenuto che ho pubblicato utile, è stato creato appositamente per questo! L’errore di cui mi parli è dovuto dal fatto che non hai ancora creato la funzione impostazioni_tema_cb() che viene spiegata nella sezione intitolata Carichiamo il logo.

      Prova a seguire nuovamente la lezione e fammi sapere se hai risolto il tuo problema!

      A presto, Andrea.

      Rispondi
  11. Xero

    Ciao Andrea, in primis….complimentoni per la guida, è perfetta spiegata in modo semplice ma esaustivo 😉
    Essendomi avvicinata da poco al mondo wordpress, posso ufficialmente dire che inizio a capirci qualcosa!
    Dopo aver seguito fin qui la guida passo passo, mi sono persa su una piccolezza (credo). Quando inserisco in functions.php la stringa

    $pagina_impostazioni= add_theme_page(
    __(‘Pagina Impostazioni Tema’, ‘templatezero’), // Nome della Pagina
    __(‘Impostazioni Tema’, ‘templatezero’),…

    ma ‘templatezero’ a cosa si riferisce?

    Lo so sarà una stupidaggine, ma ho perso questo passaggio 😐

    Grazie in anticipo 😀

    Rispondi
    • Andrea Barghigiani

      Con il termine templatezero stai dicendo a WordPress che quella stringa di testo potrà essere tradotta in altre lingue se si trova il file .po della lingua. È un passaggio un pò avanzato, in poche parole permetti al tuo tema (e solo al tema) di essere tradotto in altre lingue grazie alla struttura che il sistema troverà seguendo le tue istruzioni.

      Anche se al momento non sei ancora pronta a creare questi .po file, utilizzare queste funzioni ti permetteranno di assicurarti che se qualcuno desidererà tradurre il tuo tema, sarà libero di farlo andando ad inserire un unico file al posto di modificare tutte le tue pagine del tema.

      Rispondi
      • Xero

        ma quindi nei futuri template che andrò a creare, se volessi inserire questa stringa, devo sempre inserire la dicitura templatezero o posso metterne un’altra?

        Rispondi
        • Andrea Barghigiani

          Certamente che potrai utilizzare una dicitura differente. Tutto quello che ti devi ricordare di fare è leggere nuovamente la sezione “Prepariamo il Tema alla sua Traduzione” e puoi notare la funzione load_theme_textdomain() che è quella che ti permette di dichiarare quella particolare stringa per il tuo tema.

          Rispondi
  12. Michele

    Complimenti per l’ottima guida,ne avevo trovate altre ma in confronto a questa sono niente.
    Ho però un piccolo problema con il mixin di “.less” chiamato “.riga();”.
    Ho definito un larghezzaColonna quindi il calcolo di less dovrebbe essere:
    @larghezzaColonna *12 = @totLarghezza
    Purtroppo però nella pagina mi prende un’altezza di 430px, e una larghezza di 0.
    Se elimino la funzione “riga();” e inserisco un semplice “width.100%” non ho alcun problema.
    Suggerimenti?

    Rispondi
    • Andrea Barghigiani

      Ciao Michele,
      mi fa veramente piacere che apprezzi questo corso e voglio anche dirti che è anche diventato un vero e proprio ebook così sarai in grado di portare sempre con te queste informazioni e potrai consultarle anche offline.

      Per quanto mi dici di LESS.js la situazione è alquanto strana… Sei sicuro di aver inserito .riga() e magari non soltanto riga() come dal commento inserito? Inoltre, hai scaricato il file grid.less dove viene definita la griglia al completo? La porzione che è stata inserita nella lezione non è tutto il file ma mi è servito per farvi capire quale sia la sezione che ti permette di definire le tue grandezze.

      Prova anche a scaricare il codice e ad eseguire quello, tienimi aggiornato!

      PS: sfrutto l’occasione per dirti che ho anche creato un corso per LESS.js che è presente su Udemy. Il corso è focalizzato su questa interessante libreria e ti permetterà di scoprire diversi aspetti che per chiari motivi non posso affrontare in questo corso.

      Rispondi
      • Michele

        Ti sei già scordato che ho lasciato un ottima review del tuo corso di “.less” su Udemy? ;O)
        I file su cui sto lavorando sono quelli scaricati dal tuo zip, le uniche due variabili che ho modificato sono larghezza colonna e margine.

        Rispondi
        • Michele

          Niente ho risolto, non so come mai ma chrome non mi aggiornava le modifiche fatte a grid.less, aperto il file come sorgente di pagina ed ho visto i valori a 0. ho aggiornato ed ora funziona tutto.
          Hai qualche idea sul motivo di questo comportamento di Chrome?

          Rispondi
          • Andrea Barghigiani

            Mah nn saprei… Sarà mica qualche problema di cache? Anche io ho notato che talvolta Chrome mi faceva delle storie con LESS.js, io ho risolto usando un preprocessore che mi compila il codice LESS in codice CSS e punto sempre a quel file. Visto che puoi mettere le mani sul corso, dai un’occhiata alla lezione 6 del corso su LESS, là ti presento diversi compilatori che ti saranno molto utili 😀

  13. Adriano

    Ciao volevo chiederti una cosa. A me non funziona l’upload del logo in particolare l’offset riportato dalla funzione testo_sezione_cb() relativo a get_option(‘opt_impostazioni_tema); risulta vuoto.

    $options = get_option(‘opt_impostazioni_tema);
    var_dump($options);

    Restituisce questo:
    string(0) “”

    che è una stringa vuota e difatti ottengo questo errore:
    Warning: Illegal string offset ‘logo’ in C:\xampp\htdocs\wordpress\wp-content\themes\AllGambling\inc\impostazioni_tema.php on line 133

    Ho provato sia scrivendo manualmente le funzioni che facendo un copia incolla del tuo testo ma niente da fare.
    Sai per caso come risolvere ?

    Adriano

    Rispondi
    • Andrea Barghigiani

      Ciao Adriano,
      hai mica provato a scaricare il file della lezione? Perché io ho appena fatto un test nella mia installazione locale e mi funziona correttamente…

      Inoltre, questa lezione è divisa in due parti e se controlli il codice della prossima trovi anche altri spunti che ti permetteranno di caricare il logo.

      Fammi sapere come prosegue!

      Rispondi
    • Adriano

      Ciao,
      a dire il vero si ci avevo provato risolvendo ma siccome erano le cinque di mattina passate e il mio precedente commento era in fase di moderazione, ottima scelta per altro, non ho ritenuto di aggiungere qualcosa.

      Il problema l’ho risolto con un semplice diff sulla directory contenente il codice scaricato e quella che stavo creando io seguendo le lezioni che mi ha fatto vedere per quale motivo mi permetto di darti un consiglio. La funzione testo_sezione_cb che proponi qua nel sito non è di per se errata se non per il fatto che non opera nessun controllo sulla variabile $options che dovrebbe contenere il nome del file da visualizzare con il tag img seguente e difatti nella lezione scaricata hai modificato tale funzione in modo che se la variaibile è settata visualizza il logo altrimenti amen non visualizza niente.

      Poichè la funzione proposta nel testo della lezione non può non tornare un errore dato che al contrario non opera nessun controllo e quindi se non c’è nessun file caricato, ad esempio se è la prima volta che l’utente accede alle impostazioni del tema è ovvio che non può esserci nessun logo, non potresti editare questa lezione e copiarci il codice di quella scaricata ? In questo modo chi in futuro studierà questo corso eviterà il mio stesso problema dato che, ripeto, è matematico che questa vada in errore.

      function testo_sezione_cb(){
      echo “Da qui puoi caricare il tuo logo.”;
      $options = get_option(‘opt_impostazioni_tema’);
      echo ‘Carica qui il tuo file:’;

      if ($file = $options[‘logo’]) {
      echo “”;
      }
      }

      e il perchè è visibile a occhio nudo in quanto se $options deve contenere un valore qualsiasi ritornato dalla funzione get_option() e questa non è uguale al valore (o stringa che sia) contenuto in $file ecco che l’illegal scatta.

      Per il resto ottimo lavoro e ottimo sito.
      Adriano

      Rispondi
      • Andrea Barghigiani

        Ciao Adriano,

        sinceramente non avevo visto l’ora di pubblicazione del commento e sono partito immediatamente a rispondere 😉

        Scusa se dubito sul tuo tipo di controllo (magari sono io che non lo capisco) ma sei sicuro che il codice che hai inserito sia corretto? Da come leggo io la condizione dice qualcosa come: “Imposta la variabile $file al valore di $options['logo']” e per come la vedo io risulterà vera soltanto quando le $options sono impostate (ovvero quando è stata caricata una immagine) e restituendo una stringa vuota l’immagine non viene mostrata in preview all’interno del pannello di amministrazione.

        Sono curioso di capire se ho letto male io e intanto ti ringrazio per il consiglio.

        PS: ho provveduto a modificare il codice di esempio come nel file scaricabile. Fammi sapere se hai bisogno di altro.

        Rispondi
        • Adriano

          Mi ero espresso male io. Il codice di esempio così come era nel file scaricabile funziona benissimo. Era quello in precedenza presente sul sito a non funzionare ma ora che hai copiato la funzione tutto è ok.

          Rispondi
  14. VINCENZO

    Mi continuava a dare l’errore:
    Fatal error: Call to undefined function get_options() in /membri/laugher/wp-content/themes/Template/inc/impostazioni_tema.php on line 73
    e questo anche se scaricavo i tuoi files.
    Sono 3 giorni che li controllo parola per parola e forse ho trovato una cosa che non quadra.
    Nel file impostazioni_tema nella cartella inc c’è scritta l’istruzione:

    Mentre nel file Header c’è scritto:

    Come vedi nella seconda istruzione manca una s alla fine della parola option.
    Oddio, magari sto dicendo una sciocchezza ed è tutto giusto… se così non fosse mi spieghi la differenza?
    Grazie mille.

    Rispondi
  15. VINCENZO

    Non capisco perchè non siano partite le istruzioni.
    Header:
    Impostazioni_tema:
    Nella seconda istruzione c’è una s di +.

    Rispondi
  16. VINCENZO

    $opzioni = get_option( ‘opt_impostazioni_tema’ );
    $opzioni = get_options( ‘opt_impostazioni_tema’ );
    Mi sa che se metto il prefisso php davanti non me lo mette. Mi spiace x la ridondanza del post.

    Rispondi
  17. Valerio Montanaro

    Beh io utilizzo wordpress v3.7.1 e per adesso funziona tutto alla perfezione. Consiglio ad altri utenti di copiare i codici con calma; la programmazione di temi wordpress necessita di tempo e pazienza! Purtroppo!!!!!
    Buona pazienza a tutti!!!!!
    Grazie sempre Andrea.

    Rispondi
    • Andrea Barghigiani

      Grazie mille per la partecipazione Valerio, le persone come te valgono oro per un sito come questo! Sto preparando un bell’articolo con tanto di video che parla di Sublime Text 😉

      Rispondi
  18. giovanni

    Ciao andrea, ho seguito alla lettera le istruzione della lezione ed ho riscontrato un problemino. Premetto che utilizzo la versione WP 4.1.1. a me la voce “impostazioni tema”, nel menu aspetto non compare..
    Ti riporto di seguito quello che ho scritto nei file, che poi sarebbe il copia incolla di cio che c’è scritto in lezione:
    “impostazioni_tema.php” –
    <?php
    /*
    * Questo file mi permettera' di creare le opzioni necessarie per creare il pannello di impostazioni del tema
    */
    function pagina_impostazioni_tema_cb(){
    $pagina_impostazioni= add_theme_page(
    __('Pagina Impostazioni Tema', 'templatezero'), // Nome della Pagina
    __('Impostazioni Tema', 'templatezero'), //Voce menu
    'administrator', //Capacità richiesta
    __FILE__, // Slug della pagina, utilizziamo __FILE__ per dare uno slug unico
    'impostazioni_tema_cb' // Funzione incaricata di creare il layout della pagina
    );
    }
    add_action('admin_menu', 'pagina_impostazioni_tema_cb');
    _________________________________________________________________________________
    function.php –
    <?php require_once('');

    ho provato anche, prendendo spunto dai file scaricati, ad inserire –
    <?php require_once( 'inc/impostazioni_tema.php');
    ______________
    continua ad non apparire nulla nel menu apetto.

    Rispondi
    • Andrea Barghigiani

      Ciao Giovanni,

      mi sa tanto che stai usando male la funzione require_once() perché il percorso che indichi al suo interno deve essere presente all’interno del tuo tema. Se non esiste la cartella inc/ oppure non hai creato il file impostazioni_tema.php la cosa non può funzionare.

      Fai una cosa invece, il mio tentativo era quello di rendere più ordinato il codice presente nel tuo tema ma per fare una cosa veloce puoi sempre copiare il codice che trovi in impostazioni_tema.php e inserirlo in functions.php direttamente.

      Fatta questa prova fammi sapere se adesso la voce Impostazioni Tema è visibile.

      Ciao e a presto!

      Rispondi