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 alla tua 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.
Fai una copia del file "archive.php" dal file tema WordPress "Venti e sedici." Non spostarlo, ma fanne una copia. Rinominarlo "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' => '',
'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:
- 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".
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 usare altro plugin di WordPress per dare un aspetto moderno e per ottimizzare la gestione 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à.
Le WordPress Plugin 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 la bacheca solo per gli utenti che hanno effettuato l'accesso 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 WordPress Plugin modulo che collega il tuo sito Web WordPress all'API di affiliazione Flipkart.
Ce WordPress Plugin Semplifica molto 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. Utilizzandolo, non sarà necessario utilizzare un'API di terze parti. Beneficerai così pienamente del tuo 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.
...
Ciao
In ogni caso, vi ringrazio molto per le vostre risposte e vi auguro buona fortuna
grazie
___________ ________ _____ ____________
| Articolo 1 | | arti 2 | | _A3_ | | |
| __________ | | _______ | _____ | Articolo 6 |
______________________ | 5 | | |
| _________ 4 _________ | | ____ | | ___________ |
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,
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!
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 _________ | | ____ | | ___________ | e il titolo di un particolare articolo)
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
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.