X

Guida allo Stile del Plugin WordPress WP-PageNavi

Se non hai familiarità con il plugin WordPress WP-PageNavi, ti permette di sostituire la normale navigazione precedente/successiva con una navigazione a pagine numerate più avanzata.

wp page navi

In questo tutorial, vedremo come:

  • Installare WP-PageNavi e integrarlo correttamente nel tuo tema.
  • Due metodi per disabilitare e/o sovrascrivere gli stili predefiniti del plugin.
  • Una panoramica del markup HTML generato da WP-PageNavi
  • Infine, come modificare l'aspetto della navigazione delle pagine tramite CSS

Installa il Plugin

Hai due opzioni quando si tratta di installare il plugin WP-PageNavi.

  • Scaricalo da WordPress.org, caricalo nella tua directory /wp-content/plugins/ e attivalo (ovvero, il vecchio metodo).
  • A seconda del tuo host, puoi anche installare automaticamente i plugin cercandoli nella pagina "Aggiungi Nuovo" sotto Plugin nel tuo pannello di amministrazione di WordPress. Basta cercare "pagenavi" e dovresti trovarlo.

Ok, questo dovrebbe essere stato abbastanza facile. Ora è il momento di sporcarsi un po' le mani con il codice per la parte di integrazione.

Integrazione nel Tema

Nella nostra integrazione nel tema, non vogliamo mai che vengano visualizzati errori se WP-PageNavi non è attivo. Invece, ci assicureremo che ripieghi sulla vecchia navigazione di tipo precedente/successivo. Per fare ciò, useremo un controllo condizionale function_exists.

Supponiamo che questo sia il tuo normale codice di navigazione precedente/successivo di WordPress:

<div class="navigation">
	<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
	<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
</div>

Lo cambieremo in quanto segue:

<?php if (function_exists('wp-pagenavi')) { wp_pagenavi(); } else { ?><div class="navigation">
	<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
	<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
</div><?php } ?>

Questo fondamentalmente controlla se WP-PageNavi è attivo e, in tal caso, visualizza il nuovo codice di navigazione della pagina. In caso contrario, ripiega con grazia sulla normale navigazione precedente/successiva.

Nota: A seconda di come è codificato il tuo CSS, potresti voler inserire la parte wp_pagenavi(); all'interno del div "navigation" (o equivalente). Tieni presente che WP-PageNavi genera una nuova classe chiamata "wp-pagenavi" che possiamo usare per stilizzare separatamente.

Sovrascrivi gli Stili del Plugin

Per impostazione predefinita, WP-PageNavi inserisce automaticamente un file CSS chiamato pagenavi-css.css dalla sua directory plugin nell'header del tuo sito. Non vogliamo che questi stili predefiniti interferiscano con i nostri fantastici stili personalizzati, quindi li elimineremo completamente, e ci sono due semplici modi per farlo.

  • Aggiungi un file CSS alla directory del tuo tema – Questo è probabilmente il modo più semplice per sovrascrivere gli stili predefiniti di WP-PageNavi. Se hai un file chiamato pagenavi-css.css nella directory del tuo tema, WP-PageNavi userà questo invece di quello predefinito nella directory del plugin.
  • Aggiungi uno snippet al tuo file functions.php – Il seguente snippet di codice che abbiamo preso da WP Recipes disabiliterà completamente il comportamento sopra descritto e non includerà alcun foglio di stile dal plugin (né quello predefinito né uno sovrascritto nella tua directory tema).
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
	wp_deregister_style( 'wp-pagenavi' );
}

Inserisci semplicemente quel codice nel file functions.php del tuo tema e aggiungi gli stili CSS al foglio di stile regolare del tuo tema (di solito style.css).

Nota: Assicurati che il codice sia racchiuso tra parentesi come <?php ... ?> se il tuo file functions è attualmente vuoto.

Markup HTML e selettori CSS di WP-PageNavi

Ecco come appare il markup di WP-PageNavi. Nell'esempio seguente, ci sono quattro pagine, attualmente alla pagina due.

&lt;div class="wp-pagenavi">
	&lt;a href="http://example.com/" >Previous&lt;/a>&lt;a href="http://example.com/" class="page" title="1">1&lt;/a>
	&lt;span class="current">2&lt;/span>
	&lt;a href="http://example.com/?paged=3" class="page" title="3">3&lt;/a>
	&lt;a href="http://example.com/?paged=3" >Next&lt;/a>&lt;/div>
	&lt;span class="extend">...&lt;/span>
	&lt;a href="http://example.com/?paged=4" class="last" title="Last &raquo;">Last &raquo;&lt;/a>
&lt;/div>

Possiamo usare i seguenti selettori CSS per indirizzare il markup HTML sopra:

  • .wp-pagenavi – Si applica all'intero div, utile per pulizie CSS, padding/margini, dimensioni dei font e stili (grassetto, corsivo, ecc.)
  • .wp-pagenavi a – Indirizza tutti i link all'interno della navigazione della pagina, inclusi i numeri di pagina e precedente/successivo.
  • .wp-pagenavi a.page – Indirizza specificamente i numeri di pagina
  • .wp-pagenavi a.first – Indirizza specificamente il link "primo" (non elencato sopra)
  • .wp-pagenavi a.last – Indirizza specificamente il link "ultimo"
  • .wp-pagenavi span – Indirizza il numero della pagina corrente insieme alla parte di estensione (quella con tre puntini)
  • .wp-pagenavi span.current – Indirizza specificamente il numero della pagina corrente
  • .wp-pagenavi span.extend – Indirizza specificamente l'estensione (la cosa con tre puntini)
  • .wp-pagenavi span.pages – Indirizza specificamente la visualizzazione del numero di pagina (es. Pagina 1 di 4)

Nota: I link precedente e successivo per impostazione predefinita non hanno alcuna classe CSS. Se desideri differenziarli completamente dai numeri di pagina e dai link primo/ultimo, dovrai reimpostare eventuali stili aggiunti al selettore .wp-pagenavi a. Se ciò non ha avuto senso, dai un'occhiata al seguente esempio (molto semplificato).

Ad esempio: Supponiamo che tu voglia che i link precedente e successivo siano in grassetto, ma ogni altro link abbia un peso normale. Dovresti fare quanto segue:

.wp-pagenavi a { font-weight: bold; } /* Previous and Next links only */
.wp-pagenavi a.page,
.wp-pagenavi a.first,
.wp-pagenavi a.last { font-weight: normal; } /* Other links */

Ho combinato i link dei numeri di pagina, il link primo e il link ultimo in un'unica regola a scopo di esempio. Naturalmente, puoi separarli e aggiungere stili più specifici a ciascuno.

Sarebbe molto più facile se ci fosse una classe aggiunta ai link precedente/successivo per impostazione predefinita, ma non c'è. Non è un grosso problema poiché puoi semplicemente reimpostarli comunque.

Puoi usare .wp-pagenavi a.previouspostslink e .wp-pagenavi a.nextpostslink per selezionare rispettivamente i link precedente e successivo.

Quindi, praticamente tutto ciò che precede l'elenco puntato dei selettori non è più rilevante, ma lo manterremo solo perché potrebbe essere una lezione utile sulla sovrascrittura del CSS in altre situazioni. L'esempio CSS seguente si applicherà comunque poiché non abbiamo utilizzato quei selettori.

Un esempio CSS

Ecco un esempio di stile PageNavi che abbiamo creato:

Blogwave PageNavi Aggiornato

Ecco il codice che abbiamo usato per ottenere questo aspetto, il CSS multi-riga singola è opzionale:

.wp-pagenavi a, .wp-pagenavi span {
	padding: 5px; margin-right: 10px;
	font-size: 15px; color: #03719c; text-decoration: none;
	border: 3px solid #ccc; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px;
	}
.wp-pagenavi a:hover, .wp-pagenavi span.current {
	background: #03719c;
	color: #fff;
	border: 3px solid #AFAFAF;
	}
.wp-pagenavi span.current { font-weight: bold; }

Ed ecco cosa significa tutto:

Prima Regola
Il .wp-pagenavi a, .wp-pagenavi span seleziona tutti gli elementi anchor e span (praticamente tutto) all'interno del div .wp-pagenavi.

  • La prima riga della regola imposta un padding di 5px in modo che non sia schiacciata contro il bordo grigio chiaro (definito di seguito). Imposta anche un margine costante di 10px a destra di ogni elemento in modo che ci sia uno spazio uguale tra ciascuno.
  • La seconda riga imposta una dimensione del carattere di 15px, rende il colore del testo blu e si assicura che i link non abbiano sottolineature.
  • La terza riga imposta un bordo grigio solido di 3px su tutto. Il codice border-radius rende gli angoli arrotondati.

Seconda Regola
Il .wp-pagenavi a:hover, .wp-pagenavi span.current seleziona rispettivamente l'effetto hover del link e il numero della pagina corrente.

  • La prima riga imposta un colore di sfondo blu scuro.
  • La seconda riga rende il testo bianco.
  • La terza riga fornisce un bordo leggermente più scuro.

Terza Regola
Questo seleziona (di nuovo) il numero della pagina corrente senza influenzare anche l'effetto hover del link (come la seconda regola). Questo rende solo il numero della pagina corrente in grassetto.

Il motivo per cui non l'abbiamo incluso con l'effetto hover del link è che ha un effetto non uniforme passando da un font normale a uno in grassetto.

Nota: A seconda di come è codificato il tuo CSS, potresti dover utilizzare selettori più specifici. Ad esempio, se ci sono stili per #content a e il tuo WP-PageNavi si trova all'interno della div di contenuto, potresti dover riscrivere il tuo CSS di PageNavi come #content .wp-pagenavi a e sovrascrivere altri stili meno specifici.

Conclusione

Sappiamo che questo è stato un esempio relativamente semplice, potresti avere regole CSS molto più avanzate per differenziare ulteriormente i vari link e altri elementi. Speriamo che tu abbia imparato qualche consiglio CSS lungo la strada.

L'integrazione opzionale di WP-PageNavi è una funzionalità piuttosto interessante che gli sviluppatori di temi potrebbero integrare nei loro temi. Con il metodo di integrazione che abbiamo delineato sopra, gli utenti potrebbero facilmente scegliere se usarlo o meno, e potrebbe essere una bella opzione per molti blog.

Potresti voler consultare le nostre guide e tutorial:

Questi post ti aiuteranno a trovare altre soluzioni che potresti cercare.

Commenti   Lascia una risposta

  1. ho il tema neve e ho copiato il css del plugin nel mio foglio di stile e il codice nella funzione, ancora non funziona...

    1. Stai copiando il CSS in un foglio di stile o in una funzione?

  2. Qualcuno sa come cambiare il numero di pagina? Ci sto provando da settimane e il mio sito web è urgente per il mio capo!

    Ad esempio, al momento è:
    1,2,3,4,5,.. ecc..

    Voglio che assomigli a questo:
    Antipasti, Insalate, Pasta, Pizza, ecc…

    Se questo non è possibile, qualcuno ha altre buone idee?

  3. Ecco un altro modo per stilizzare WP-PageNavi con CSS e un effetto 'fade' javascript:
    http://www.riversatile.fr/2011/06/13/donnez-du-style-a-wp-pagenavi/

  4. Il css non funziona sul mio: http://lrastart.org/

    Continua a tornare al css originale.

    1. Assicurati di controllare la sezione “Ignora stili plugin” del tutorial.

  5. Ci sono degli stili carini qui 😉 Ottima guida alla navigazione della pagina.

  6. Penso che function_exists(‘wp-pagenavi’) non funzioni, dovrebbe essere ‘wp_pagenavi’.

    Grazie per il tutorial!

  7. Solo per informarti che hai usato .first e .last invece di :first e :last (i primi due non funzioneranno).

    Ottimo tutorial comunque 🙂

    1. Penso che ti riferisca a pseudoclassi come :first-child e :last-child, ma non avresti comunque bisogno di usarle poiché le classi “first” e “last” vengono automaticamente generate nel plugin.

      Ci sono maggiori informazioni sui pseudo-selettori CSS e sulla compatibilità del browser in questa pagina: http://kimblim.dk/css-tests/selectors/

  8. Mi infastidisce ancora che questo plugin non utilizzi un elenco ordinato per il markup. Alla fine ho optato per WP Page Numbers. Buon tutorial comunque, grazie.

    1. Ciao Karl, grazie per avermi informato su quel plugin, non l'ho mai usato prima. Sembra quasi lo stesso ma con markup di lista e più classi CSS.

      Ha anche alcuni "temi" integrati che è piuttosto bello.

  9. Ottimo tutorial!

    Solo una cosa: i link precedente e successivo hanno effettivamente delle classi CSS: 'previouspostslink' e 'nextpostslink'.

    1. Ciao scribu, per un attimo ho pensato di impazzire perché non l'avevo visto prima, ma sembra che tu abbia ragione.

      Ho cercato su Google "nextpostslink" e mi sono imbattuto in questo post: http://yoast.com/pagination-classes/ a cui Lester Chan (autore originale del plugin WP-PageNavi, per chi non lo sapesse) ha commentato dicendo che aveva aggiunto le classi precedente/successivo al codice del plugin principale.

      A quanto pare stavo usando una versione obsoleta del plugin che non aveva ancora le classi nei link precedente/successivo, da qui il workaround che stavo usando. Aggiornerò il post di conseguenza.

  10. Salve,

    Al momento pagenavi mostra 10 post per pagina - come posso cambiarlo a 5?

    Grazie,
    Jason

    1. Non credo che abbia a che fare con pagenavi, devi modificarlo nelle tue impostazioni di lettura.

    2. Oh certo! grazie

  11. Jean-Baptiste Jung 8 maggio 2010 alle 3:39

    Grazie per la guida utile! La userò sicuramente quando svilupperò i miei temi.

    1. Grazie Jean-Baptiste, è una bella funzionalità da implementare nei temi, specialmente in quelli già rilasciati.

      Molti utenti preferiscono avere questo tipo di navigazione ed è utile se l'integrazione e gli stili CSS sono già presenti all'interno del tema, tutto ciò che devono fare è installare il plugin.

  12. Fantastico! Sto salvando questo tutorial nei preferiti perché sono sicuro che mi sarà utile un giorno. Buon lavoro Leland! 😀

    1. Grazie mille Jaypee, lo apprezzo!

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!