Visualizzazione di tipi di post personalizzati: modelli e query

Pubblicato: 2016-09-26

Questo è il terzo e ultimo articolo della nostra serie sui tipi di post personalizzati (CPT). Gli argomenti trattati nei primi due sono stati:

  • Tipi di post personalizzati (come crearli)
  • Tassonomie personalizzate

Nel primo e nel secondo articolo abbiamo registrato il tipo di post personalizzato testimonianze e la tassonomia personalizzata testimonial_service . Ora dobbiamo visualizzare le testimonianze sul nostro sito. Quindi daremo un'occhiata a come creare un modello per le nostre testimonianze, come interrogarle e come visualizzarle ovunque sul nostro sito.

Modelli di tipo di post personalizzati predefiniti

Abbiamo creato il nostro CPT con il parametro has_archive impostato su true, che mostrerà tutte le testimonianze in una pagina di archivio .

WordPress utilizza una gerarchia di modelli per visualizzare diversi tipi di contenuto. Per il tipo di post personalizzato, cercherà:

archivio-{tipo_post}.php
single-{tipo_post}.php

Se questi modelli non sono definiti nel tema, cercherà i modelli generali:

archivio.php
singolo.php

Se anche questi modelli non sono definiti, verrà impostato automaticamente il modello index.php .

Nel nostro caso il tema Shaka ha single.php , ma non ha il template archive.php . Ciò significa che, per impostazione predefinita, utilizzerà il modello single.php per la pagina della singola testimonianza. Utilizzerà anche il modello index.php per visualizzare tutte le testimonianze nella pagina dell'archivio delle testimonianze.

Le testimonianze verranno visualizzate nella pagina dell'archivio testimonianze , che si troverà in questa pagina:

http://your-domain-goes-here.com/ ?post_type=testimonials

Se hai i permalink graziosi abilitati, puoi anche accedere alla pagina con questo URL:

http://your-domain-goes-here.com/ testimonianze

(Nota: se i graziosi permalink non funzionano per te, vai su wp-admin -> Impostazioni -> Permalink e configurali, nel modo in cui li desideri e salva le impostazioni)

Innanzitutto, dovremmo scrivere alcune testimonianze nelle Testimonianze CPT appena registrate, quindi abbiamo alcuni dati da visualizzare. Ho aggiunto 3 testimonianze ed ecco come appare il layout predefinito della pagina dell'archivio delle testimonianze sul nostro tema Shaka:

testimonianze-default

Come puoi vedere il layout è ok, ma alcuni dei dati visualizzati non sono necessari, come "per autore" e la data. Anche la tassonomia personalizzata testimonial_service non viene visualizzata, quindi la aggiungeremo nei nostri modelli personalizzati.

Creazione di modelli personalizzati per il nostro CPT

Come accennato nella sezione precedente, dobbiamo creare due modelli. Archive-testimonials.php e single-testimonials.php . Creeremo solo il modello archive-testimonials.php per questo esempio.

Dovremmo creare questi file in un tema figlio, ma per semplicità, aggiungerò il file archive-testimonials.php direttamente nel tema Shaka. Copierò il file index.php, che servirà come punto di partenza, e lo rinominerò in archive-testimonials.php .

Ho rimosso il "per autore", il codice della data e la barra laterale. Ho aggiunto le immagini in evidenza e la tassonomia personalizzata del servizio di testimonianze . Ho usato la funzione WP the_terms che mostra un elenco di termini WP specifici, nel nostro caso la tassonomia personalizzata.

testimonianze finite

So che esteticamente non è eccezionale, ma non è questo il punto. Volevamo creare una diversa struttura/layout della pagina dell'archivio delle testimonianze con dati diversi, e ciò è stato ottenuto in pochi minuti.

Potremmo anche fare lo stesso per la pagina delle singole testimonianze. Copieremmo il file single.php e lo rinomineremmo in single-testimonials.php e da lì cambieremmo il codice.

Non ho mostrato alcun codice qui poiché gli esempi di codice sarebbero diversi per ogni tema e per codificare i modelli è necessaria una conoscenza di base di HTML e PHP. Ma è sempre più facile modificare un template esistente, ecco perché abbiamo usato index.php come punto di partenza.

Interrogazione di tipi di post personalizzati

Un altro modo per visualizzare i tipi di post personalizzati sul tuo sito consiste nell'usare la classe WP_Query per recuperare i tipi di post personalizzati (scorrere e visualizzarli).

Supponiamo che tu voglia creare un widget che mostri tutte le testimonianze in un carosello. Oppure, che desideri visualizzare le testimonianze correlate (stessa tassonomia del servizio di testimonianza) nella pagina della singola testimonianza. Utilizzeresti la classe WP_Query per recuperare le testimonianze pertinenti.

Nel nostro esempio recupereremo tutte le testimonianze che si trovano nella tassonomia personalizzata del servizio testimonial "diving" e le forniremo in un elenco:

 <?php $args = array( 'post_type' => 'testimonials', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'testimonial_service', 'field' => 'slug', 'terms' => 'diving' ) ) ); $testimonials = new WP_Query( $args ); if( $testimonials->have_posts() ) : ?> <ul> <?php while( $testimonials->have_posts() ) : $testimonials->the_post(); ?> <li><?php printf( '%1$s - %2$s', get_the_title(), get_the_content() ); ?></li> <?php endwhile; wp_reset_postdata(); ?> </ul> <?php else : esc_html_e( 'No testimonials in the diving taxonomy!', 'text-domain' ); endif; ?>

Come puoi vedere nel codice sopra, prepariamo prima l'array di impostazioni degli argomenti, che viene successivamente utilizzato nell'inizializzazione di WP_Query . In questo array, definiamo di recuperare:

  • `testimonianze` CPT,
  • ottenere solo le testimonianze pubblicate,
  • ottieni solo le testimonianze che sono nella tassonomia personalizzata di immersione `testimonial_service`.

Quando viene chiamata la new WP_Query , le testimonianze rilevanti vengono recuperate e possiamo scorrerle. Nel ciclo abbiamo semplicemente prodotto il titolo (che ho usato per il nome dell'autore) e il contenuto della testimonianza in un semplice elenco. Inoltre, dovremmo sempre usare la funzione wp_reset_postdata , per ripristinare il ciclo originale, quando utilizziamo un ciclo WP_Query. Ciò garantirà che tutto funzioni al termine della nostra query personalizzata.

Queste sono state le basi dei tipi di post personalizzati e spero che ora tu capisca come funzionano. Come per qualsiasi argomento, ci sono sempre più dettagli da approfondire. Ti consiglierei di esaminare la documentazione ufficiale di WP per tutte le funzioni e le classi che abbiamo usato in questi esempi. Fammi sapere nella sezione commenti qui sotto, se hai domande.