C'è del PHP oltre la Struttura

C’è del PHP oltre la Struttura

  É giunto il momento di andare ad inserire il contenuto dei nostri articoli all'interno delle pagine singole che abbiamo progettato, non credete?!?  

Grazie alla scorsa lezione siamo stati in grado di modificare il layout e alcuni elementi della pagina, come ad esempio la sidebar, per permettere ai nostri lettori di prestare maggiore attenzione al contenuto dei nostri articoli senza essere troppo distratti degli elementi che lo circondano.

Ma se avete seguito tutti i passaggi che abbiamo già affrontato, o se vi siete scaricati l’archivio .zip contenente i file del template, vi sarete accorti che caricando la pagina singola di un articolo, tutto quello che era possibile leggere era “Inserire Ciclo“; stesso testo per tutti gli articoli!

Abbiamo sbagliato qualcosa? Assolutamente no! Lo scopo dell’ultima lezione è stato proprio quello di preparare il contenuto che circonda quello principale, quello contenuto dal nostro articolo. In questa lezione, invece, andremo ad imparare come sia possibile mostrare l’intero contenuto dell’articolo andando ad aggiungere la possibilità di separare lo stesso articolo in più pagine.

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!

Nuova Funzione per Caricare il Contenuto

Come vi avevo già annunciato, in questa lezione andremo a conoscere una nuova interessante funzione che WordPress ci ha messo a disposizione a partire dalla versione 3, la funzione prende il nome di get_template_part() e come possiamo immaginare, ci consentirà di caricare parte di un template all’interno di un template.

Questa definizione vi può sembrare forse un pò strana, ma pensate per un attimo alle varie funzioni get_header(), get_sidebar() e get_footer() che abbiamo già utilizzato più volte; non fanno forse la stessa cosa?

Il primo passo che dovremmo fare è quindi di andare ad inserire questa funzione all’interno del file single.php:

Conclusioni

Mi sono accorto soltanto adesso che il pulsante che permette di inserire l’interruzione della pagina, è disponibile soltanto se all’interno di WordPress è stato installato un plugin che aumenta le capacità dello stesso editor; ad esempio su questo sito usiamo TinyMCE Advanced. Ma voglio farvi capire che non abbiamo fatto niente di male ma, anzi, abbiamo preparato il nostro tema all’eventualità che il nostro cliente voglia utilizzare una funzionalità interna di WordPress, alla fine quello che gli basterà fare sarà aggiungere un commento <!–nextpage–> all’interno dell’articolo ed il gioco è fatto.

Quello che sto cercando di farvi capire è che sviluppare un template WordPress per un cliente, ci apre le porte a molti diversi utilizzi, il più delle volte, differenti da quelli che possiamo avere noi con il nostro template. É importante, quindi, conoscere da vicino questo sistema per assicurarci di poter mettere in vendita dei temi professionali e compatibili con i suoi standard.

Se vi state preoccupando per “le cose che devo imparare per creare template con WordPress” non dovete assolutamente farlo! La curva di apprendimento che WordPress vi offre è molto rapida e, alla fine, ci sono quà io pronto a chiarire ogni vostro dubbio!

Salutandovi, colgo l’occasione per ricordarvi che manca ancora un interessante elemento alla nostra pagina singola, la sezione che permetterà ai nostri visitatori di aggiungere dei commenti e far scatenare una conversazione. Questo ed altro vi stà già aspettando nella prossima lezione…

Lascia il tuo Pensiero

12 Responses to “C’è del PHP oltre la Struttura”

  1. carlo

    ciao andrea, sempre io..

    ho provato a mettere il nextpage, però quando clicco sul link mi da una pagina “spaginata”..
    l’ in fondo a sinistra, nemmeno allineato con il testo della pagina…
    lo fa solo a me?

    Rispondi
  2. Andrea Barghigiani

    Ciao Marco,

    ma ti fa lo stesso errore anche dal file che hai scaricato? Seguendo la lezione è molto importante che la funzione wp_link_pages venga inserita all’interno del contenitore del tuo contenuto perché altrimenti l’elemento che viene creato da questa funzione potrebbe non comportarsi correttamente, come nel tuo caso…

    Assicurati di aver inserito la funzione all’interno del ciclo e sopratutto all’interno dello stesso elemento che contiene la funzione the_content(). Se poi il problema persiste, prova ad agire via CSS utilizzando l’ID impag usato nell’esempio.

    Rispondi
    • carlo

      anche tu mi chiami marco??? XD

      comunque andando a giocherellare con l’ispeziona elementi risulta che l’aside venga buttato fuori dal container… il problema è che non riesco a capire il perché accada

      Rispondi
  3. Andrea Barghigiani

    Ciao Carlo,
    e scusami per prima. Evidentemente ero un pò distratto da altro e non ho ben registrato il tuo nome nella mia mente.

    Per aiutarti mi dovresti fare un favore, mi puoi dire se il codice che stai utilizzando proviene dall’archivio .zip che scarichi da questa pagina oppure se hai scritto da zero tutto il codice del corso?

    Perché nel primo caso sarei in grado di analizzare il codice che anche altri utenti stanno scaricando e, quindi, risolvendo questo problema potrei anche aiutare loro. Nel secondo mi potresti inviare il tuo codice per darmi l’occasione di andare a controllare dove risieda l’errore.

    Da quel che dici sembra che la sidebar venga aperta e mail chiusa, ma questo è molto strano, perché in questo contesto la sidebar ha ben poco a che fare con il contenuto del sito, ma è l’unica soluzione che mi viene in mente…

    Ci deve essere qualcosa di sbagliato nella dichiarazione dei cicli o degli elementi HTML ma fintanto che non vedo, non sono in grado di esserti di maggior supporto.

    Rispondi
    • carlo

      ho avuto modo di controllare meglio stamattina, in breve col tuo tema (anche quello dell’ultima lezione) l’aside me lo pone in basso a sinistra dopo i commenti, col mio affianca l’aside con lo spazio per i commenti e “centra” i commenti rispetto alla pagina così spostata
      se mi dici dove mandarlo te lo invio subito

      Rispondi
  4. Alessio

    Ciao Andrea,sono lo stesso Alessio che aveva il problema con la pagina “Impostazioni Tema” qualche lezione prima di questa,ho un dubbio che forse puoi chiariarmi in merito a questa lezione: ho notato che sia con il mio codice che con quello dell’archivio della lezione,gli articoli nella home page vengono visualizzati per intero e non appare nessun link “continua a leggere” e non è possibile nemmeno visualizzare l’articolo singolo perchè il titolo degli articoli in home page non è linkato al permalink.Verrà spiegato più avanti nelle lezioni come risolvere questa cosa oppure c’è qualcosa che non quadra? Grazie

    Rispondi
    • Andrea Barghigiani

      Ciao Alessio,

      ho provato proprio adesso a installare i file di questa lezione e tutto mi sembra che funzioni correttamente. Nei titoli degli articoli non è presente alcun link perché non sono stati inseriti, in poche parole il titolo generato in homepage è scritto in questo modo: <h3><?php the_title(); ?></h3> se vuoi aggiungere il link devi modificare questa stringa in questo modo: <h3><a href="<?php the_permalink(); ?>" rel="nofollow"><?php the_title(); ?></a></h3>.

      Per quanto riguarda il discorso della mancanza del link “Continua a Leggere”, nel mio WordPress tutto funziona correttamente. Sei sicuro di aver inserito il tag <!--more--> nella sezione Testo dell’editor? Una soluzione ancora più semplice è quella di utilizzare il bottone “More” che trovi facilmente all’interno dell’editor WordPress.

      Fammi sapere come vanno le cose, a presto.

      Rispondi
      • Alessio

        OK,tutto sistemato,la cosa del tag mi era sfuggita,però ho ancora una curiosità che voglio togliermi,ho visto che il loop di wp che sta nell’index è identico a quello che sta nella pagina content-single.php ,come mai nel primo vengono mostrati tutti gli articoli mentre per il secondo ne viene mostrato solo uno? tra l’altro non vedo nemmeno confronti per il titolo o per lo slug,in base a cosa viene scelto?

        Rispondi
        • Andrea Barghigiani

          Ciao Alessio,

          i tuoi dubbi sul Loop sono più che legittimi, non ti preoccupare perché all’inizio anche io ho avuto qualche difficoltà a comprendere la logica WordPress. Se ti può interessare, un pò di tempo fà, ho realizzato un articolo che ti introduce al Loop WordPress; è presentato in maniera informale, ma dovrebbe comunque contenere le informazioni che stai cercando.

          Fammi sapere se hai bisogno di qualcosa di più specifico o se l’articolo che ti ho consigliato può essere sufficiente.

          Rispondi
          • Alessio

            Ho letto l’articolo però non sono riuscito a soddisfare la mia curiosità,quello che mi chiedo io è: visto che il ciclo while del loop WP scandisce tutti i post e ne mostra i vari elementi (metadati,titolo,contenuto,ecc) di ognuno,come mai nella pagina content-single.php il codice del loop è lo stesso di index.php però viene mostrato solo l’articolo scelto? quello che non mi è chiaro,su quale criterio lo sceglie visto che non c’è una condizione? Per caso la funzione the_post() fa uso anche di variabili di sessione?fa uso di cookie? è questo che non mi spiego

          • Andrea Barghigiani

            Ciao Alessio,

            WordPress è un CMS che non utilizza sessioni (detto anche stateless) ma funziona in modo che è in grado di riconoscere automaticamente il tipo di informazione che viene richiesta.

            Utilizzando il loop classico, non modificato quindi, come ti mostro nella lezione, WordPress è in grado di comprendere da solo se il contenuto deve mostrare sarà una lista di articoli (come succede in home) oppure se sarà il contenuto di un singolo articolo (lo capisce anche grazie al fatto che la URL viene modificata).

            Questa è una caratteristica molto importante di WordPress che ti permette di salvare molto tempo una volta compresa. Se ti torna difficile comprenderla sul momento, ti consiglio di accettarla come realtà assoluta.

            Il comportamento del Loop può essere personalizzato anche grazie alle modifiche che vengono fatte all’interno dei file .php che compongono un tema (come ti ho mostrato nella lezione 10) e vedrai più avanti come questo sia possibile quando arriverai alle ultime lezioni di questo corso.

            Fammi sapere se la situazione è adesso più chiara o se hai bisogno di ulteriori spiegazioni.

          • Alessio

            Dopo aver letto la tua ultima spiegazione diciamo che ora è più chiaro,in effetti non avevo pensato che potesse basarsi sull’url della pagina,ti ringrazio per il chiarimento.