Vai al contenuto principale

Come utilizzare correttamente WP_Query su WordPress

Divi: il tema WordPress più semplice da usare

Divi: il miglior tema WordPress di tutti i tempi!

più Download di 901.000, Divi è il tema WordPress più popolare al mondo. È completo, facile da usare e viene fornito con oltre i modelli gratuiti 62. [Consigliato]

Sono un grande fan della classe WP_Query: la uso su diversi siti Web dei clienti per recuperare e visualizzare i dati in modo personalizzato.

Se si desidera utilizzare più cicli su una pagina, il modo migliore per farlo è eseguire "WP_Query" ogni volta che è necessario eseguire il ciclo.

Ma c'è un inconveniente: ogni volta che WordPress esegue un ciclo, invia query al database, che richiede più tempo e può rallentare il tuo sito web.

In questo tutorial, ti mostrerò come utilizzare una query per più di un ciclo. Puoi farlo con la query principale oppure puoi usare la stessa tecnica con WP_Query.

Esploreremo gli aspetti di 3:

 

  • Crea un tema figlio e un file modello.
  • Crea un modello per il contenuto del loop.
  • Crea i nostri loop.

 

Ma prima scopriamo insieme Come installare un blog Wordpress passi 7 et Come trovare, installare e attivare un tema WordPress sul tuo blog 

Quindi torniamo al perché siamo qui.

Quello di cui hai bisogno

Per seguire questo tutorial, avrete bisogno di:

 

  • Da un'installazione di WordPress per lo sviluppo (a livello locale).
  • Un editor di codice.
  • Articoli nel tuo sito Web con più categorie assegnate
  • il ventisei tema di WordPress
  • Un tema figlio di ventisei sedici installato e attivato

 

Questa tecnica si adatta anche alla tua situazione e al tuo tema WordPress.

Creare un tema figlio

Per prima cosa creeremo il tema child di ventisei sedici. Lo sto facendo perché non voglio cambiare il tema principale.

Scopri Come installare un tema WordPress bambino

Nella cartella "contenuto / temi / wp", crea una nuova cartella vuota, che chiamerai "tema tutor". Successivamente puoi scegliere il nome che fa per te.

In questa cartella, crea un file chiamato style.css e aggiungi il seguente codice:

/*

Nome del tema: tema di Tuto

URI del tema: https://blogpascher.com

Descrizione: tema a supporto dell'esercitazione sull'esecuzione di più loop durante l'interrogazione del database una sola volta. Tema figlio per il tema Twenty Sixteen.

Autore: Hervé

URI dell'autore: https://blogpascher.com

Modello: ventisette

Versione: 1.0

*/

 

@import url ("../twentysixteen/style.css");

Ora salva questo file e attiva il tuo nuovo tema WordPress.

Il passaggio successivo consiste nel creare un file modello per le categorie, su cui lavoreremo.

Crea una copia del file "archive.php" dal tema WordPress "Twenty Sixteen". Non spostarlo, ma eseguine una copia. Rinominalo "categoria.php".

Per andare oltre, scopri Come gestire i file e le cartelle di WordPress

Questo sarà ora il file modello per le categorie del tuo sito Web.

Creazione di un nuovo file modello

Il primo passo è creare un nuovo file modello nel nostro tema che conterrà una versione modificata del ciclo "ventisei".

Consultiamo anche insieme Come mettere il tuo sito Web WordPress in modalità Manutenzione

Nella cartella del tema figlio, crea una sottocartella denominata "include". E all'interno, crea un nuovo file chiamato "loop-category.php".

Quindi, apri il file "template-parts / content.php" dalle cartelle dei temi principali (ventisei sedici) e trova il seguente codice:

" >

 

 

 

 

 

 ", esc_url (get_permalink ()))," '); ?>

 

 

 

 

 

 

 

 

 / * traduttori:% s: nome del post corrente * /

 the_content (sprintf (

 __ ('Continua a leggere '% s ' ', 'twentysixteen'),

 get_the_title ()

 ));

 

 wp_link_pages (array (

 'before' => ' '. __ ("Pages:", "twentysixteen"). ' ',

 'after' => ' ',

 'link_before' => ' ',

 'link_after' => '',

Crea facilmente il tuo sito Web con Elementor

Elementor ti consente di creare facilmente qualsiasi design di sito Web con un aspetto professionale. Smetti di pagare caro per quello che puoi fare da solo. [Free]

 'pagelink' => ' '. __ ("Pagina", "ventisei sedici"). ' %',

 'separator' => ' , ',

 ));

 ?>

 

 

 

 

 

 edit_post_link (

 sprintf (

 / * traduttori:% s: nome del post corrente * /

 __ ('Modifica '% s ' ', 'twentysixteen'),

 get_the_title ()

 ),

 ' ',

 ''

 );

 ?>

 

Copia questo codice nel nuovo file "loop-category.php" del tema figlio.

Modifica del file di parti del modello

Il ciclo "ventisei" mostra più di quello che mi serve, quindi modificherò questo codice. Voglio solo mostrare lo snippet e non il contenuto, quindi rimuoveremo il contenuto.

Qual è la differenza tra H1 e il titolo SEO di un articolo WordPress? Scoprilo consultando questo articolo.

Nel tuo nuovo file loop-category.php, trova questo codice ed eliminalo:

<div class = "entry-content">

 

 / * traduttori:% s: nome del post corrente * /

 the_content (sprintf (

 __ ('Continua a leggere '% s ' ', 'twentysixteen'),

 get_the_title ()

 ));

 

 wp_link_pages (array (

 'before' => ' '. __ ("Pages:", "twentysixteen"). ' ',

 'after' => ' ',

 'link_before' => ' ',

 'link_after' => '',

 'pagelink' => ' '. __ ("Pagina", "ventisei sedici"). ' %',

 'separator' => ' , ',

 ));

 ?>

L'altro passaggio consiste nel sostituire la funzione "venti_sixteen_excerpt ()" con la funzione "the_excerpt ()", poiché la versione di Twenty sixteen non fornisce un collegamento all'articolo completo.

Vedi anche Come visualizzare recenti articoli in una categoria specifica

Trova questa linea:

Sostituiscilo con questo:

Dobbiamo anche apportare alcune modifiche ai tag del titolo.

Nella parte del modello, cambia la linea:

", esc_url (get_permalink ()))," '); ?>

Modifica i tag H2 per H3:

", esc_url (get_permalink ()))," '); ?>

Registra il tuo modello. Quindi torna al tuo file di categoria.php continueremo con esso.

Creazione di loop

Prima di tutto rimuoveremo l'inclusione del codice per "ventisei" dal nostro file "category.php", poiché avremo bisogno di utilizzare il nuovo file.

Nel tuo file category.php trova questo codice:

get_template_part ('template-parts / content', get_post_format ());

Ed elimina il.

Quindi creeremo i loop.

In questo esempio, visualizzerò tutti i post con il tag "content", utilizzando il tag condizionale "has_tag ()". Ciò significa che dovrò passare attraverso tre cicli:

Stai cercando i migliori temi e plugin per WordPress?

Scarica i migliori plugin e temi WordPress su Envato e crea facilmente il tuo sito web. Già più di 49.720.000 download. [ESCLUSIVO]

 

  • Il primo controlla se la query ha pubblicato elementi con questo tag.
  • In tal caso, il secondo visualizza gli articoli con questa etichetta.
  • Un terzo visualizza articoli senza questo tag.

 

Tra ogni ciclo, userò rewind_posts () per riavvolgere i messaggi senza reimpostare la query: lavoriamo sempre con la query principale ogni volta.

Il primo ciclo: verifica degli articoli

Nel tuo file "category.php", trova l'inizio del ciclo:

while (have_posts ()): the_post ();

Sopra questa linea, definisci una nuova variabile chiamata $ count:

$ Count = 0;

Quindi all'interno di quel ciclo aggiungi questo codice:

// controlla se ci sono post con il tag »

$ tag = "contenuto";

if (has_tag ($ tag)) {

 $ count + = 1;

}

Questo codice controlla se i messaggi hanno l'etichetta "contenuto", quindi aggiunge 1 al contatore in tal caso.

L'interno del loop sarà simile a questo:

// Controlla i post nel primo ciclo.

$ Count = 0;

while (have_posts ()): the_post ();

 

// controlla se ci sono post con il tag »

$ tag = "contenuto";

if (has_tag ($ tag)) {

 $ count + = 1;

}

 

ENDWHILE;

Il secondo ciclo: ripristina gli articoli con il tag

Il passaggio successivo consiste nel visualizzare in ciclo gli articoli con questo tag, solo se ce ne sono.

Ad esempio, se il valore di $ count è maggiore di 0.

Scopri anche Come personalizzare la dashboard di WordPress per un cliente

Aggiungi questa condizione al loop:

if ($ count> 0) {

 

 rewind_posts ();

 

 eco ' Post taggati con ". $ tag. ' ';

 

 

 while (have_posts ()): the_post ();

 

 if (has_tag ($ tag)) { 

 get_template_part ('includes / loop', 'category'); 

 }

 

 // Termina il ciclo.

 ENDWHILE;

 

}

Questo codice verifica che $ count sia maggiore di zero e, in tal caso, riavvolge gli elementi ed esegue nuovamente il ciclo. Per ogni articolo controlla se possiede la nostra etichetta e, in tal caso, chiama la parte del modello che abbiamo appena creato.

Il terzo ciclo: visualizza il resto degli articoli

L'output sarà un ciclo finale sugli articoli rimanenti. Se questa categoria non ha un articolo con il tag "contenuto", verranno visualizzati tutti gli articoli nella categoria.

Impara pure Come creare un blog multi-autore e consentire ai lettori di pubblicare articoli sul tuo blog

Nel tuo secondo ciclo, aggiungi questo:

rewind_posts ();

 

 

// Second Loop - post non con il tag "content"

while (have_posts ()): the_post ();

 

 if (! has_tag ($ tag)) { 

 get_template_part ('includes / loop', 'category'); 

 }

 

// Termina il ciclo.

endwhile; ?>

Quest'ultimo codice riavvolge gli articoli, quindi esegue nuovamente il ciclo. Questa volta, controlla se un articolo non ha il tag "content", quindi visualizza il contenuto nella "template-part".

Crea facilmente il tuo negozio online

Scarica gratuitamente WooCommerce, i migliori plug-in di e-commerce per vendere i tuoi prodotti fisici e digitali su WordPress. [Consigliato]

Ti consigliamo anche di scoprire Come aggiungere un'opzione di stampa articoli su WordPress

Ora puoi testare la pagina degli articoli del tuo blog. Ricorda che puoi cambiare i filtri. In questo tutorial abbiamo usato il "contenuto" come filtro etichetta, ma puoi usare quello che preferisci.

Scopri anche alcuni plugin WordPress premium  

Puoi utilizzare altri plugin di WordPress per dare un aspetto moderno e ottimizzare la presa del tuo blog o sito Web.

Ti offriamo qui alcuni plugin WordPress premium che ti aiuteranno a farlo.

1. Addon Social Wall per UserPro

UserPro può essere molto più divertente con un social wall. Questo è ciò che porta la sua estensione Social Wall. Con il plug-in Social Wall, puoi creare un wall sul tuo sito Web e fornire ai tuoi membri un modo innovativo per interagire con la comunità.

Il plugin WordPress Social Wall consente ai tuoi utenti di: condividere messaggi tra loro, condividere immagini, commentare i post di altre persone, gli utenti possono mettere mi piace o non mi piace a un messaggio, possono scegliere di visualizzare il muro solo per loro. utenti registrati o per tutti gli utenti, gli amministratori possono eliminare post o commenti degli utenti, ecc.

Download | Demo | Web hosting

2. Flipkart Affiliate Plus

Flipkart Affiliate Plus è un plug-in WordPress modulare che collega il tuo sito Web WordPress all'API di affiliazione Flipkart. 

Questo plugin per WordPress semplifica notevolmente l'importazione dei dati di prodotto da Flipkart e l'aggiornamento direttamente sul tuo sito web. Flipkart Affiliate Plus è il primo plugin WordPress per l'API Flipkart ufficiale. Usandolo, non sarà necessario utilizzare alcuna API di terze parti. Beneficiate così pienamente del vostro lavoro.

Download | Demo | Web hosting

3. Google Analytics utilizzabile per WooCommerce

Actionable Google Analytics è un plug-in di WordPress che ti consente di utilizzare alcune delle migliori funzionalità di Universal Analytics, tra cui: E-commerce avanzato e monitoraggio dell'ID utente. Inoltre, questo plugin supporta l'anonimizzazione degli indirizzi IP, i rimborsi dei prodotti, il raggruppamento dei contenuti, il monitoraggio dei moduli, ecc.

Utilizzando questo plug-in WordPress, risparmierai tempo nell'integrazione del codice di Google Analytics complesso, così potrai concentrarti sulla gestione dei tuoi dati.

Le sue caratteristiche principali sono: installazione facile e veloce, accesso a 9 report di e-commerce avanzati, la possibilità di studiare come i diversi dispositivi vengono utilizzati dallo stesso utente e come vengono effettuati gli acquisti, la capacità di analizzare quali prodotti vengono rimborsati più spesso, infine di intraprendere azioni correttive e altro ancora.

Download | Demo | Web hosting

Altre risorse consigliate

Ti invitiamo inoltre a consultare le risorse seguenti per approfondire la presa e il controllo del tuo sito Web e blog.

 

 

Conclusione

Ecco ! Questo è tutto per questo tutorial abbastanza tecnico. Spero di essere stati espliciti su come utilizzare correttamente WP_Query su WordPress. sentiti libero di condividi il suggerimento con i tuoi amici sui tuoi social network.

Tuttavia, sarai anche in grado di consultare il nostro risorse, se hai bisogno di più elementi per realizzare i tuoi progetti di creazione di siti Internet, consultando la nostra guida su Creazione di blog WordPress.

Ma intanto parlaci del tuo commentaires e suggerimenti nella sezione dedicata.

... 

 

Questo articolo contiene i commenti 7

  1. ___________ ________ _____ ____________
    | Articolo 1 | | arti 2 | | _A3_ | | |
    | __________ | | _______ | _____ | Articolo 6 |
    ______________________ | 5 | | |
    | _________ 4 _________ | | ____ | | ___________ |

  2. Ciao Blair
    grazie per queste esercitazioni parfais,
    Vorrei chiedere un piccolo aiuto per favore.
    Ho creato il mio tema wordpres (html / css) e ho riscontrato un piccolo problema che cercherò di risolvere per te: ho intenzione di creare un sito simile a msn.com il mio sito sarà diviso in diverse divisioni (intestazioni ) che sono: notizie, intrattenimento, salute, stile di vita ... ecc. vale a dire che voglio creare un primo gruppo di articoli e un secondo gruppo, un terzo ... ecc. ma mostra tutti i gruppi sulla stessa pagina e che ogni gruppo appartiene a una sezione (nicchia). Mi chiedo se questo back office wordpress possa gestire il contenuto di ogni sezione separatamente? con il loop wordpress // Pubblica contenuto scusa, nessun post trovato! Ottengo un mix di articoli:
    vale a dire che il mio ultimo articolo scritto è posto direttamente nella prima sezione che è notizia, mentre è un articolo che appartiene ad esempio allo stile di vita.
    Mi sono imbattuto in questa pagina https://codex.wordpress.org/fr:La_Boucle Penso che la parte più cicli possono risolvere il mio problema!
    spero che tu capisca cosa sto cercando di dire

    vi ringrazio in anticipo per la risposta,
    Cordiali saluti,

    1. Buongiorno,
      Penso che ti stia complicando la vita per niente. Già quello che ho capito è che vuoi organizzare i tuoi articoli in categorie (sezione) e ogni sezione può appartenere a una nicchia, che può essere categorie padre. Sì, il ciclo può aiutarti a farlo ed è straordinariamente semplice.
      Coraggio!

      1. Bonjour.
        innanzitutto grazie per la tua rapida risposta. Penso che il tema che ho appena creato non sia più compatibile con wordpress ed è da lì che viene il problema.
        infatti visto che i vostri commenti non supportano l'immagine allegata vi spiegherò disegnando:
        ecco un sito di categorie
        ___________ ________ _____ ____________
        | Articolo 1 | | arti 2 | | _A3_ | | | quindi immagina che ogni articolo lo sia
        | __________ | | _______ | _____ | Articolo 6 | rappresentato da una piastrella; quindi abbiamo 6
        ______________________ | 5 | | | elementi (ogni tessera contiene l'immagine
        |_________ 4 _________| |____| |___________| et le titre d’un article particulier )

        il mio vero problema, signor Blair, è che non posso incartare i miei articoli in modo che possano passare dalla casella 1 alla casella 6, cioè quando aggiungo un nuovo oggetto e Lo pubblico voglio che prenda il posto dell'articolo 1 come in tutti i temi esistenti.
        - Penso che questo non sia pratico poiché ogni post (articolo) ha le sue proprietà come posizione, altezza, larghezza ... ecc., Cosa ne pensi allora?
        ovviamente l'idea è un po 'chiara con questo diagramma, altrimenti se non mi dispiace e vuoi aiutarmi, hai la mia e-mail (devi solo mandare una e-mail contenente il tuo nome).

        Grazie ancora per i tuoi ripensa

        1. Buonasera, in questo caso dovrai aggiungere variabili di tipo "int", quindi ogni volta che il loop loop, incrementerai la variabile e in base al valore della variabile, potrai modificare il visualizzazione dell'articolo. Per esempio :

          if ($ i == 1) {
          // il tuo codice qui
          } Else if ($ i == 2) {
          // come
          }
          $ I ++;

          Purtroppo, non posso assistervi personalmente in questo momento.

  3. […] In questo tutorial, ti insegnerò come utilizzare le query WP_Query in modo più efficiente su WordPress. [...]

Lascia un commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre indesiderati. Ulteriori informazioni su come vengono utilizzati i dati dei commenti.

Torna in alto
0 azioni
quota
Tweet
Enregistrer