WordPress: mostrare contenuti solo agli utenti registrati (e loggati)

Premessa

Stai realizzando un sito web con WordPress e vorresti mostrare l’avanzamento dei lavori al tuo cliente, il quale però vive in un’altra città e non può sedersi al tuo fianco per esaminare il lavoro svolto. Per aggirare il problema potresti adottare diverse soluzioni, ciascuna con qualche inconveniente:

  • potresti inviare al cliente degli screenshot delle pagine realizzate, ma così facendo non potrà apprezzare tutte le animazioni wow.js che hai inserito e neppure tutte le css transitions che ti sono costate tanta fatica.
  • potresti sviluppare il sito in locale (magari su una virtual machine a cui hai assegnato tramite file hosts lo stesso nome dominio che avrà il sito definitivo) e fare l’upload sul sito reale per il tempo necessario a che il tuo cliente lo esamini, per poi cancellare tutto; ma perderesti prezioso tempo in attività a zero valore aggiunto, quali export ed import del DB WordPress.
  • potresti sviluppare il sito direttamente online, ad esempio su un sottodominio del tuo sito web, ma sai già che al momento di passare al dominio definitivo potresti avere degli inconvenienti, come il dover modificare manualmente i link salvati all’interno del database WordPress.
  • potresti allora sviluppare il sito direttamente online, sul dominio definitivo, ma così facendo qualche visitatore potrebbe “imbattersi” sul sito ancora incompleto. A meno che tu non possa selezionare i visitatori che possono vedere il sito durante lo sviluppo, e mostrare invece a tutti gli altri una pagina di cortesia.
    Ma questa cosa si può fare con WordPress? Certo che sì.

Mostrare i contenuti del sito solo agli utenti registrati

Affinché WordPress presenti a tutti i visitatori del sito una pagina di cortesia, e ne presenti invece i reali contenuti solo ai visitatori registrati, si deve procedere in questo modo:

  1. Registrare gli utenti a cui si vogliono mostrare le pagine del sito, magari con un ruolo che non permetta modifiche alla sua struttura, come il ruolo di Autore. Per maggiori informazioni su come svolgere questa attività vedere il seguente tutorial online:
  2. Fornire al cliente le credenziali e le istruzioni per loggarsi al sito (quando sarà il momento).
  3. Predisporre e pubblicare la pagina di cortesia come una normale pagina di WordPress.
  4. Annotarsi l’ID della pagina di cortesia.
    Quando si è in modifica di un elemento (post o pagina) di WordPress, nella barra degli indirizzi ne è indicato l’ID, Ad esempio:

    nomesito/wp-admin/post.php?post=nnn&action=edit

    (dove nnn rappresenta l’ID dell’elemento)

  5. Creare un tema "figlio" (tradotto: "child").
    La guida ufficiale di WordPress per gli sviluppatori (il “Codex”) contiene una pagina in lingua italiana che descrive come creare un tema child . Al termine di questa procedura nella cartella principale del tema child saranno disponibili i file functions.php e style.css.
  6. Modificare il file functions.php del tema child, inserendo queste righe di codice (dove “nnn” rappresenta l’ID della pagina di cortesia annotato al punto 3):
    function myCourtesyPage() {
      $idCourtesyPage = nnn; 
      if (! is_user_logged_in() ) {
        if ( get_the_ID() <> $idCourtesyPage ) {
          wp_safe_redirect(get_permalink($idCourtesyPage)); 
          die();
        }
      }
    }        
    add_action( 'template_redirect', 'myCourtesyPage' );

A questo punto, un visitatore che ha effettuato il login potrà vedere le pagine del sito, mentre chi non è loggato potrà vedere solo la pagina di cortesia.

Quando il sito sarà definitivo, per renderlo visibile a tutti sarà sufficiente commentare l’ultima riga:

//    add_action( 'template_redirect', 'myCourtesyPage' );

Commento al codice inserito in functions.php

Ecco una breve descrizione (completa di link alla guida per gli sviluppatori di WordPress) per le diverse funzioni utilizzate nel codice inserito nel file functions.php:

  • La funzione is_user_logged_in() determina se il visitatore è loggato. E’ la funzione che permette di discriminare gli utenti che possono accedere al sito rispetto a quelli che possono vedere solo la pagina di cortesia.
  • La funzione get_the_ID() restituisce l’ID della pagina che si sta per visualizzare. Viene utilizzata per evitare che un utente che sta per accedere alla pagina di cortesia venga continuamente reindirizzato alla stessa pagina.
  • La funzione wp_safe_redirect() effettua il reindirizzamento all’URL passato come parametro.
  • La funzione get_permalink() restituisce l’URL della pagina web corrispondente all’ID passato come parametro.
  • La funzione die() termina la elaborazione della pagina corrente (la funzione wp_safe_redirect() non lo fa automaticamente).
  • La funzione add_action() permette di eseguire la funzione myCourtesyPage() nel momento in cui WordPress gestisce l’evento ‘template_redirect’ (ovvero quando viene determinato il template di pagina da utilizzare).

Metodo alternativo

Un metodo alternativo al precedente e che permette maggior libertà nella costruzione della pagina di cortesia, può essere il seguente:

    1. Creare una pagina senza contenuti (l’importante è ottenere l’ID).
    2. Creare nella cartella principale del tema child un file page-nnn.php (dove nnn corrisponde all’ID della pagina creata al punto precedente) ed inserire in questo file il contenuto da visualizzare.
      WordPress utilizzerà questo template per visualizzare la pagina di cortesia.

Notepad++: come installare il plugin NppFTP

Premessa

Durante l’attività di web development può rendersi necessario accedere in modifica ai file del sito di produzione, ad esempio per fixare velocemente un errore e consolidarepoi la modifica con il consueto iter di sviluppo.

In questi casi, se come text editor si utilizza Notepad++ (sia a 32 che a 64bit), può esser utile utilizzare il plugin NppFTP, che integra nell’editor un client FTP.

Al termine della installazione del plugin NppFTP, scaricareun file dal sito, modificarlo e salvarlo sul server di produzione, sarà questione di pochi click. Ecco come installare il plugin. Leggi tutto “Notepad++: come installare il plugin NppFTP”

Come installare Composer su Linux Ubuntu

Premessa

Composer è un gestore di pacchetti per il linguaggio PHP. Permette di reperire librerie PHP sul repository  “Packagist”, scaricarle e gestirne le dipendenze da altre librerie. Permette inoltro l’autoload delle classi presenti nelle librerie gestite.

Composer è contenuto in un archivio PHP (composer.phar), che non deve essere scompattato per poterne eseguire i comandi. La sua installazione consiste sostanzialmente nel download ed esecuzione del suo installer.
Al termine di queste operazioni il file composer.phar sarà disponibile nella directory dov’è stato scaricato l’installer.

Di seguito i passi da seguire per installare composer su un server Linux Ubuntu. Leggi tutto “Come installare Composer su Linux Ubuntu”

WordPress: inserire la search box nel menu principale

Premessa

La search box fornita come widget standard nel tema di default di WordPress è senza dubbio un utile strumento per ricercare un determinato argomento all’interno del sito.

La naturale collocazione della search box è all’interno di una “plugin area”, tipicamente nella barra laterale destra. Esigenze di design potrebbero però portare alla necessità di eliminare la barra laterale e di conseguenza anche la search box. In questo caso, una possibile soluzione può essere quella di collocare la search box all’interno del menu di navigazione di WordPress. In questo modo, la search box rimane sempre a disposizione, senza occupare lo spazio della pagina.

Ecco quindi cosa bisogna fare per inserire la search box nel menu principale di WordPress. Leggi tutto “WordPress: inserire la search box nel menu principale”

CSS in WordPress: come aggiungere il proprio codice

Questo articolo descrive come  inserire codice personalizzato CSS in  WordPress. Presuppone che il lettore sia già in possesso delle nozioni di base su WordPress (compresi i concetti di theme e plugin) ed i fogli di stile CSS.

Gestione di base dei fogli di stile CSS in WordPress

Quando si è in visualizzazione di un post di WordPress, il layout della pagina  è affidato al foglio di stile “style.css” presente nella cartella principale del tema in uso. Ad esempio, in una installazione di WordPress che utilizza il tema predefinito “Twenty Seventeen”, il file style.css sarà contenuto nel percorso: /wp-content/themes/twentyseventeen/

Quando si è in modifica di un post, invece, la sua formattazione è demandata al foglio di stile editor-style.css che nel tema predefinito è collocato nel percorso: wp-content/themes/twentyseventeen/assets/css/ Leggi tutto “CSS in WordPress: come aggiungere il proprio codice”

XAMPP nuovo concetto di sicurezza ed errore “403 accesso proibito”

La premessa

Hai appena installato l’ambiente XAMPP sul tuo server Linux Ubuntu e ti accingi ad accedere al database MySQL tramite l’applicazione web phpmyadmin.

Ci sono due scenari possibili:

  • hai installato l’Ubuntu Desktop e quindi hai a disposizione un ambiente grafico. In questo caso è sufficiente avviare Firefox, inserire http://localhost/phpmyadmin nella barra degli indirizzi e premere invio.
    Come risultato si otterrà la pagina principale di phpmyadmin, come atteso.
  • hai installato XAMPP su Ubuntu Server e non hai un ambiente grafico. “Poco male -pensi- accederò a phpmyadmin dal  mio computer client inserendo nella barra degli indirizzi l’IP del mio server Linux”. Apri un browser sul tuo computer e (ammettendo che nella rete locale il server abbia IP: 192.168.1.10) inserisci l’indirizzo: http://192.168.1.10/phpmyadmin
    E qui nasce il problema.

Leggi tutto “XAMPP nuovo concetto di sicurezza ed errore “403 accesso proibito””

Sintassi delle regole CSS

Una regola CSS è formata da un selettore e una o più dichiarazioni, separate dal carattere “;” e racchiuse tra parentesi graffe. Nel seguente esempio:

h1 { 
  text-align: center; 
  color: rgb(0, 0, 255);
}
  • h1 è il selettore
  • il carattere “{” apre il blocco delle dichiarazioni
  • text-align: center; e color: rgb(0, 0, 255); costituiscono due dichiarazioni
  • il carattere “}” chiude il blocco delle dichiarazioni

Leggi tutto “Sintassi delle regole CSS”

Sintassi degli elementi HTML

Gli elementi HTML

Un elemento HTML è tipicamente composto da un tag di apertura, un contenuto ed un tag di chiusura. Nel seguente esempio:

<h1>Sintassi degli elementi HTML</h1>
  • <h1>costituisce  il tag di apertura
  • Sintassi degli elementi HTML è il contenuto dell’elemento
  • </h1> costituisce il tag di chiusura ed è formato dal carattere  di barra “/” ([inglese]”slash”) seguito dal nome del tag di apertura.

Leggi tutto “Sintassi degli elementi HTML”