<

Gpci query loop

Ultima modifica: 18 Giugno 2026

Il blocco gutenberg Gpci query loop è una variazione del blocco gutenberg Query Loop block a cui ho aggiunto una serie di controlli personalizzati che servono a rimappare i parametri della wordpress query, chiaramente i tipi di valore passati alla query (array, stringa o altro) dovranno essere gli stessi. Per il momento i controlli sono parziali ma verranno aggiornati nel tempo. Questo blocco è collegabile al blocco gutenberg gpci/form per filtrarne i risultati nel frontend sia se il form è inviato via php che javascript, per farlo ricordarsi di assegnare un'ancora/id al blocco query e specificarne le coordinate nel blocco form come da istruzioni.

Controlli del blocco Gpci query loop

I controlli di questo blocco gutenberg fanno praticamente tutti riferimento alla conversione dinamica per la massima flessibilità. I controlli funzionano allo stesso modo nel backend gutenberg (grazie alle wordpress REST api) che nel frontend. Per aggiornare la query utilizzare il block control di aggiornamento blocco.

Tag html

E' possibile scrivere il tag html della query, il valore default è div. Questo controllo sovrascrive il select in avanzate.


Editor

Questo gruppo di controlli è completamente opzionale, non ha alcun effetto nel frontend ma serve a specificare alcuni parametri nel backend per semplificarne l'interfaccia:

Disabilita filtri nel backend

Se attivato tutti i filtri saranno disabilitati nel backend, verranno simulati dei post finti. Può servire se ci sono problemi relativi ai filtri, per poter configurare i blocchi nel template quando i posts non sono accessibili alle rest api (come nel caso di post types personalizzati senza rest api attive) o come preferenza personale.

Editor post_per_page

Serve a specificare il numero di elementi mostrati nel backend in quanto ha poco senso aspettare delle queries lunghe durante la configurazione del template.


Post types

Obbligatorio: selezionare uno o più post types dei posts che saranno cercati dalla query, è possibile anche utilizzare una conversione dinamica. Il valore deve essere stringa o array di stringhe.


Post status

Obbligatorio: selezionare uno o più post status dei posts che saranno cercati dalla query, è possibile anche utilizzare una conversione dinamica. Il valore deve essere stringa o array di stringhe.


Order

E' possibile aggiungere uno o più ordinamenti selezionando tra i valori predefiniti oppure la conversione dinamica. I valori devono tutti essere stringhe in quanto vengono passate nel formato:

$OrdinamentoFinale = [

  //ordinamento 1
  $orderby (date/title/...) => $orderby (DESC/ASC),

  //ordinamento 2
  $orderby (date/title/...) => $orderby (DESC/ASC),

  //...
];

Note

Attenzione agli ordinamenti per campi personalizzati in quanto in svariati casi per funzionare correttamente avranno bisogno di essere inseriti anche in meta query ad esempio come:

  • key: id_campo
  • compare: exists o il più consono
  • type: CHAR, NUMERIC o il più consono (questo fa capire all'ordinamento il tipo di campo)

Paginazione

E' possibile specificare il numero di posts per pagina tramite un numero fisso o una conversione dinamica (utilizzare -1 per visualizzare tutti i risultati). Questo parametro sarà utilizzato solo nel frontend, per il backend utilizzare quello in editor. Il valore deve essere un numero intero.


Meta query

Inserire i campi personalizzati tramite cui filtrare la query. Ogni campo aggiunto ha i seguenti controlli:

  • key
  • compare
  • valore (conversione dinamica)
  • type (conversione dinamica)
  • args (conversione dinamica)

Post In/Not in

Scegliere la modalità (post in, post not in) e utilizzare la conversione dinamica per specificare gli ID dei posts da includere o escludere. Il valore deve essere un array di numeri interi.


Post parent in

Scegliere la modalità (post parent in, post parent not in) e utilizzare la conversione dinamica per specificare gli ID dei posts da includere o escludere che hanno un certo post parent. Ricordare che:

  • Post_parent - il valore deve essere un numero intero (la query restiruirà i post figli del post con quell'id)
  • Post_parent__in - il valore deve essere un array di numeri interi (la query restiruirà i post figli dei posts con che rientrano negli id risultanti)
  • Post_parent__not_in - il valore deve essere un array di numeri interi (la query restiruirà i post che NON sono figli dei posts con che rientrano negli id risultanti)

Search

Utilizzare le conversioni dinamiche per specificare il valore e le colonne di ricerca. Ricordare che:

  • il parametro valore (equivale al parametro _s della query, cioè la stringa che verrà cercata) deve essere una stringa
  • il parametro colonne (equivale al parametro search_columns della query, cioè le colonne in cui la stringa verrà cercata) deve essere un array di stringhe

E' possibile anche escludere i risultati che contengono una o più parole. Esempi (parametro valore):

  • computer: ritornerà i risultati che contengono la stringa computer nelle colonne specificate
  • -computer: (notare il trattino) ritornerà i risultati che NON contengono la stringa computer nelle colonne specificate
  • computer -desktop -notebook: (notare gli spazi prima dei trattini) ritornerà i risultati che contengono la stringa computer ma NON la stringa desktop oppure notebook nelle colonne specificate

Tag

Utilizzare le conversioni dinamiche per specificare uno o più dei vari parametri riguardanti i tag. I gruppi dei controlli sono:

  • Tag - il valore deve essere una stringa (lo slug del tag)
  • Tag__id - il valore deve essere un numero intero (id del tag)
  • Tag__and - il valore deve essere un array di numeri interi (gli id dei tag) - ritorneranno i posts che hanno tutti i tags specificati
  • Tag__in - il valore deve essere un array di numeri interi (gli id dei tag) - ritorneranno i posts che hanno almeno un tag specificato
  • Tag__not_in - il valore deve essere un array di numeri interi (gli id dei tag) - ritorneranno i posts che hanno nessuno dei tags specificati
  • Tag_slug__and - il valore deve essere un array di stringhe (gli slug dei tag) - ritorneranno i posts che hanno tutti i tags specificati
  • Tag_slug__in - il valore deve essere un array di stringhe (gli slug dei tag) - ritorneranno i posts che hanno almeno un tag specificato