{"id":28725,"date":"2019-10-24T07:47:22","date_gmt":"2019-10-24T14:47:22","guid":{"rendered":"https:\/\/kinsta.com\/?p=54548"},"modified":"2023-02-01T13:32:56","modified_gmt":"2023-02-01T12:32:56","slug":"wordpress-get_posts","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/","title":{"rendered":"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli"},"content":{"rendered":"<p>La funzione <code>get_posts<\/code> di WordPress \u00e8 una potente funzione che consente agli <a href=\"https:\/\/kinsta.com\/it\/blog\/assumere-uno-sviluppatore-wordpress\/\">sviluppatori<\/a> di recuperare parti di contenuto dal <a href=\"https:\/\/kinsta.com\/it\/blog\/database-wordpress\/\">database di WordPress<\/a>. Potete specificare i post, le pagine e i <a href=\"https:\/\/kinsta.com\/it\/blog\/custom-post-type-wordpress\/\">custom post type<\/a> che state cercando, ottenere il vostro result set personalizzato, quindi filtrare e ordinare gli elementi come un ninja di PHP\/MySQL.<\/p>\n<p>Ma non spaventatevi se non siete professionisti del PHP perch\u00e9 ci sono <a href=\"https:\/\/kinsta.com\/it\/blog\/tutorial-php\/\">innumerevoli tutorial PHP che potete guardare o leggere<\/a> per imparare il linguaggio. Vi serve solo un po&#8217; di <a href=\"https:\/\/kinsta.com\/it\/blog\/php-e-morto\/\">conoscenza del PHP<\/a> per creare liste personalizzate di post da visualizzare sul vostro sito web, dato che la funzione <code>get_posts<\/code> mantiene una serie di parametri che permettono di costruire query semplici o avanzate.<\/p>\n<p>Utilizzare la funzione <strong>get_posts<\/strong> di WordPress consiste in una procedura in due passaggi:<\/p>\n<ul>\n<li>Innanzitutto, dovete creare la vostra query personale. In realt\u00e0, non sembrer\u00e0 una query MySQL e non dovrete scrivere alcuna istruzione <code>SELECT<\/code>. Dovete solo definire un array di parametri e passarlo alla funzione <code>get_posts<\/code>. WordPress lo converte in una query MySQL effettiva e sicura, la esegue sul database e restituisce un array di post.<\/li>\n<li>Di seguito, dovrete iterare il risultato restituito da <code>get_posts<\/code> con un ciclo foreach.<\/li>\n<\/ul>\n<p>Detto questo, in questo post analizzeremo innanzitutto i concetti chiave sopra menzionati; vedremo in particolare come funziona <code>get_posts<\/code>, come creare una query personalizzata e come mostrare i dati sul fronte del sito.<br \/>\nQuindi, offrir\u00f2 un esempio dal mondo reale con uno snippet di codice che potete prelevare, modificare e utilizzare nel vostro ambiente di prova per i vostri test e l&#8217;attivit\u00e0 di sviluppo.<\/p>\n<p>Nota: di solito distinguiamo tra post, pagine e tipi di post personalizzati. In questo articolo, <strong>utilizziamo il termine <em>&#8216;post&#8217;<\/em> per intendere sia i normali articoli del blog, sia le pagine e i custom post type<\/strong>. Tutti questi tipi di post sono memorizzati nella tabella <em>&#8216;wp_posts&#8217;<\/em> del database. La differenza tra i tipi di post \u00e8 nel valore del campo <em>&#8216;post_type&#8217;<\/em>. <strong>Dal punto di vista dello sviluppatore, post, pagine e tipi di post personalizzati sono tutti post<\/strong>.<\/p>\n<ul>\n<li><a href=\"#get-posts\">Introduzione alla Funzione get_posts di WordPress<\/a><\/li>\n<li><a href=\"#parameters\">Come Creare Query con i Parametri di get_posts<\/a><\/li>\n<li><a href=\"#display\">Come Visualizzare i Dati Forniti da get_posts<\/a><\/li>\n<li><a href=\"#example\">Un Esempio Reale: Visualizzare un Elenco di Post Altamente Personalizzato con un Shortcode Personale<\/a><\/li>\n<\/ul>\n<h2 id=\"get-posts\">Introduzione alla Funzione get_posts di WordPress<\/h2>\n<p>Il Codex descrive la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_posts\/\">funzione <code>get_posts<\/code><\/a> come segue:<\/p>\n<blockquote><p>Recupera un array degli ultimi post, o dei post corrispondenti ai criteri indicati.<\/p><\/blockquote>\n<p>Possiamo utilizzare <code>get_posts<\/code> questo modo:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'numberposts'\t=&gt; 20,\n\t'category'\t\t=&gt; 4\n);\n$my_posts = get_posts( $args );\n\nif( ! empty( $my_posts ) ){\n\t$output = '&lt;ul&gt;';\n\tforeach ( $my_posts as $p ){\n\t\t$output .= '&lt;li&gt;&lt;a href=\"' . get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t. $p-&gt;post_title . '&lt;\/a&gt;&lt;\/li&gt;';\n\t}\n\t$output .= '&lt;ul&gt;';\n}<\/code><\/pre>\n<p>La funzione qui sopra recupera l&#8217;ultimo post nella categoria specificata (di default <code>'post_type'<\/code> \u00e8 <code>'post'<\/code>) e restituisce un array di oggetti <code>$post<\/code>. \u00c8 possibile scorrere l&#8217;array per visualizzare i post sullo schermo. \u00c8 abbastanza facile, vero?<\/p>\n<p><code>get_posts<\/code> <a href=\"https:\/\/kinsta.com\/it\/blog\/wp-query\/\">utilizza <code>WP_Query<\/code><\/a> per recuperare gli elementi post e accetta come argomento un array degli stessi parametri disponibili in <code>WP_Query<\/code> (con poche eccezioni). Quindi abbiamo un lungo elenco di variabili a nostra disposizione per creare le nostre query. Questi parametri sono raggruppati nelle seguenti <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#parameters\" target=\"_blank\" rel=\"noopener noreferrer\">15 categorie<\/a>:<\/p>\n<ul>\n<li>Parametri Autore<\/li>\n<li>Parametri di Categoria<\/li>\n<li>Parametri di Tag<\/li>\n<li>Parametri di Tassonomia<\/li>\n<li>Parametri di Ricerca<\/li>\n<li>Parametri di Articoli e Pagine<\/li>\n<li>Parametri di Password<\/li>\n<li>Parametri di Custom Post Type<\/li>\n<li>Parametri Order e Orderby<\/li>\n<li>Parametri Data<\/li>\n<li>Parametri dei Custom Field (post meta)<\/li>\n<li>Parametri relativi ai Permessi<\/li>\n<li>Parametri Mime Type<\/li>\n<li>Parametri di Cache<\/li>\n<li>Parametri dei Campi Restituiti<\/li>\n<\/ul>\n<p>Una rapida occhiata all&#8217;elenco qui sopra pu\u00f2 darvi un&#8217;idea della variet\u00e0 di query personali che potete creare ed eseguire sul database di WordPress. Quindi, conosciamo da vicino i parametri delle query e iniziamo a creare i nostri elenchi di post.<\/p>\n<h2 id=\"parameters\">Come Creare Query con i Parametri di get_posts<\/h2>\n<p>Ogni categoria di parametri si riferisce alla stessa informazione. Ad esempio, possiamo creare una query per recuperare articoli dall&#8217;autore specificato, o escludendo l&#8217;autore specificato, definendo l&#8217;autore per ID o nicename. Allo stesso modo, possiamo creare query per recuperare post per categoria, tag, tassonomia, data, campi personalizzati e altro ancora.<\/p>\n<h3>Come Utilizzare i Parametri per Creare Semplici Query<\/h3>\n<p>Molti parametri possono essere utilizzati in modo simile, indipendentemente dalla categoria di appartenenza. Ad esempio, i seguenti parametri consentono di interrogare il database per autore\/i dei post:<\/p>\n<ul>\n<li><code>author<\/code> (<em>int<\/em>) \u2013 ID autore<\/li>\n<li><code>author_name<\/code> (<em>string<\/em>) \u2013 <code>user_nicename<\/code> dell&#8217;autore<\/li>\n<li><code>author__in<\/code> (<em>array<\/em>) \u2013 un array di ID di pi\u00f9 autori<\/li>\n<li><code>author__not_in<\/code> (<em>array<\/em>) \u2013 un array degli ID di pi\u00f9 autori da escludere dal result set<\/li>\n<\/ul>\n<p>Come possiamo utilizzare questi parametri?<\/p>\n<p>Nell&#8217;esempio che segue, il parametro <code>'author'<\/code> specifica che vogliamo i post del blog pi\u00f9 recenti scritti dall&#8217;autore con ID = 1:<\/p>\n<pre><code class=\"language-php\">$my_posts = get_posts( array( 'author' =&gt; 1 ) );<\/code><\/pre>\n<p>Lo stesso parametro <em>&#8216;author&#8217;<\/em> permette di interrogare il database in diversi modi:<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from specific authors\n$my_posts = get_posts( array( 'author' =&gt; '1,5,12' ) );<\/code><\/pre>\n<pre><code class=\"language-php\">\/\/ return an array of posts excluding the specified author\n$my_posts = get_posts( array( 'author' =&gt; -1 ) );<\/code><\/pre>\n<p>Quindi, a seconda del valore del parametro, otterrete un risultato con un singolo autore (integer), da pi\u00f9 autori (un elenco di valori separati da virgola) o escludendo un autore (valori negativi).<\/p>\n<p>Altri parametri offrono maggiore flessibilit\u00e0. Ad esempio, la seguente chiamata a <code>get_posts<\/code> restituisce un array degli ultimi post di pi\u00f9 autori:<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from multiple authors\n$my_posts = get_posts( array( 'author__in' =&gt; array( 1, 5, 12 ) ) );<\/code><\/pre>\n<p>E possiamo anche escludere pi\u00f9 autori:<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from multiple authors\n$my_posts = get_posts( array( 'author__not_in' =&gt; array( 1, 5, 12 ) ) );<\/code><\/pre>\n<p>Allo stesso modo, possiamo utilizzare parametri di categoria, parametri di tag, parametri di post, con alcune differenze specifiche. Vediamo, ad esempio, i parametri di categoria:<\/p>\n<ul>\n<li><code>cat<\/code> (<em>int<\/em>)<\/li>\n<li><code>category_name<\/code> (<em>string<\/em>)<\/li>\n<li><code>category__and<\/code> (<em>array<\/em>)<\/li>\n<li><code>category__in<\/code> (<em>array<\/em>)<\/li>\n<li><code>category__not_in<\/code> (<em>array<\/em>)<\/li>\n<\/ul>\n<p>Ad ogni modo, non tutti i parametri sono facili da usare come questi. Inoltre, possiamo utilizzare parametri di categoria, parametri dei post, parametri mime type, ecc. tutti in una sola query. Ci\u00f2 significa che abbiamo un controllo granulare sugli elementi del result set, e che possiamo costruire query sempre pi\u00f9 avanzate basate contemporaneamente su tipi di post, tassonomie personalizzate e custom field, tutti insieme.<\/p>\n<p>E allora immergiamoci pi\u00f9 a fondo!<\/p>\n<h3>Come Creare Query Avanzate in WordPress<\/h3>\n<p>Facciamo un passo avanti con una query pi\u00f9 avanzata basata su custom post type e custom taxonomy. Supponiamo di avere il seguente tipo di post:<\/p>\n<p><strong>nome<\/strong>: book<br \/>\n<strong>nome tassonomia<\/strong>: book_category, book_author<br \/>\n<strong>supporto per<\/strong>: title, editor, thumbnail, excerpt, custom-fields<\/p>\n<h4>Custom Post Type e Custom Taxonomy<\/h4>\n<p>Supponiamo di voler un elenco dei libri pi\u00f9 recenti nella custom taxonomy specificata <code>book_category<\/code>. Ecco l&#8217;array di argomenti:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t'terms'\t\t=&gt; 'sci-fi'\n\t\t)\n\t),\n);<\/code><\/pre>\n<p>Gli argomenti qui sopra dicono semplicemente a WordPress di recuperare tutti i libri nella <code>'book_category'<\/code> con termine <code>'sci-fi'<\/code>.<\/p>\n<p>Il parametro <code>'tax_query'<\/code> accetta un array di array di argomenti (cio\u00e8 un array di array). Questi array nidificati consentono di creare query molto complesse basate su pi\u00f9 tassonomie, come mostrato in questo esempio:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'numberposts'\t=&gt; 10,\n\t'post_type'\t\t=&gt; 'book',\n\t'relation'\t\t=&gt; 'AND',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t'terms'\t\t=&gt; 'sci-fi'\n\t\t),\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_author',\n\t\t\t'field'\t\t=&gt; 'term_id',\n\t\t\t'terms'\t\t=&gt; 22\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Questi parametri ci consentono di recuperare un elenco degli ultimi 10 tipi di post <code>'book'<\/code> in <code>'book_category'<\/code>, scritti da <code>'book_author'<\/code> avente ID #22. Il parametro <code>'relation'<\/code> imposta la relazione logica tra tutte le tassonomie elencate in <code>'tax_query'<\/code>. Sopra abbiamo impostato il valore su <code>AND<\/code> perch\u00e9 dobbiamo recuperare tutti i libri appartenenti alla categoria <code>'sci-fi'<\/code> e (<code>AND<\/code>) scritti dall&#8217;autore #22.<\/p>\n<h4>Come Creare Meta Query Utilizzando Parametri di Custom Field<\/h4>\n<p>Occasionalmente, potrebbe essere necessario creare elenchi di post in base a chiave e\/o valore di uno specifico custom field.<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_key'\t\t=&gt; 'cover',\n\t'meta_value'\t=&gt; 'paperback',\n\t'meta_compare'\t=&gt; '='\n);<\/code><\/pre>\n<p>Questi parametri ci consentono di recuperare tutti i post in base alla chiave e al valore del custom field. <code>'meta_compare'<\/code> imposta l&#8217;operatore richiesto per testare il valore del parametro <code>'meta_value'<\/code>. Qui <code>'meta_value'<\/code> \u00e8 <code>'='<\/code>, che \u00e8 anche il valore predefinito.<\/p>\n<p>I valori disponibili sono <code>'='<\/code>, <code>'!='<\/code>, <code>'&gt;'<\/code>, <code>'&gt;='<\/code>, <code>'&lt;'<\/code>, <code>'&lt;='<\/code>, <code>'LIKE'<\/code>, <code>'NOT LIKE'<\/code>, <code>'IN'<\/code>, <code>'NOT IN'<\/code>, <code>'BETWEEN'<\/code>, <code>'NOT BETWEEN'<\/code>, <code>'NOT EXISTS'<\/code>, <code>'REGEXP'<\/code>, <code>'NOT REGEXP'<\/code>, <code>'RLIKE'<\/code>..<\/p>\n<p>Questo \u00e8 un esempio piuttosto semplice, possiamo creare query pi\u00f9 avanzate. Nel prossimo esempio, interroghiamo il database per i libri fantasy pubblicati dopo il 2010:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'meta_key'\t\t=&gt; 'year_published',\n\t'meta_value_num'\t=&gt; 2010,\n\t'meta_compare'\t=&gt; '&gt;',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug'\n\t\t\t'terms'\t\t=&gt; 'fantasy'\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>E possiamo andare ancora oltre. Nel prossimo esempio mixiamo un post con una custom taxonomy e due custom field:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug'\n\t\t\t'terms'\t\t=&gt; array( 'fantasy' )\n\t\t)\n\t),\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\tarray(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\tarray(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Qui abbiamo impostato una serie di parametri per recuperare un elenco di libri fantasy pubblicati dopo il 2010 che costano <code>BETWEEN<\/code> $10 e $25.<\/p>\n<p>Potete vedere che il parametro <code>'meta_query'<\/code> funziona in modo molto simile al parametro <code>'tax_query'<\/code>. Accetta un array di array, permettendoci di creare query avanzate basate su pi\u00f9 coppie meta key\/value. Per un elenco completo dei parametri della query e un buon numero di esempi, si veda <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\">la documentazione di <code>WP_Query<\/code><\/a>.<\/p>\n<h3>Perch\u00e9 get_posts \u00e8 Si Limita a 5 Post di WordPress?<\/h3>\n<p>La funzione <code>get_posts<\/code> accetta gli stessi argomenti di <code>WP_Query::parse_query()<\/code> (<a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/WP_Query\/parse_query\/\">vedi il Codex<\/a>), ma alcuni parametri specifici la rendono leggermente diversa da un oggetto <code>WP_Query<\/code>.<\/p>\n<p>Magari non avete utilizzato il parametro <code>'numberposts'<\/code> nelle vostre query e vi stai chiedendo perch\u00e9 vedete solo 5 elementi nella vostra lista.<\/p>\n<p>Di default, il numero di post che avete impostato nella pagina di amministrazione <strong>Impostazioni \u2192 Lettura<\/strong> determina il numero di post che devono essere recuperati da una query di WordPress. Tuttavia, se non si specifica un valore personalizzato per <code>'numberposts'<\/code> o <code>'posts_per_page'<\/code>, <code>get_posts<\/code> restituisce un numero diverso di post.<\/p>\n<ul>\n<li><code>'numberposts'<\/code> \u00e8 il numero complessivo di post da recuperare. \u00c8 un alias di <code>'posts_per_page'<\/code> di <code>WP_Query<\/code>, ma c&#8217;\u00e8 una differenza tra i due: di default, <strong>il numero di post da recuperare quando si utilizza <code>get_posts<\/code> \u00e8 5<\/strong> , mentre <code>'posts_per_page'<\/code> di <code>WP_Query<\/code> \u00e8 impostato di default al numero di post per pagina del vostro blog WordPress. Potete sovrascrivere il valore predefinito impostando un valore personale per <code>'numberposts'<\/code> o <code>'posts_per_page'<\/code> nell&#8217;array di argomenti.<\/li>\n<\/ul>\n<p>Oltre a <code>'numberposts'<\/code>, sono specifici di <code>get_posts<\/code> i parametri che seguono:<\/p>\n<ul>\n<li><code>'category'<\/code> \u00e8 un elenco separato da virgole di ID di categoria. \u00c8 un alias del parametro <code>'cat'<\/code> di <code>WP_Query<\/code>.<\/li>\n<li><code>'include'<\/code> \u00e8 un elenco separato da virgole di ID di post. \u00c8 un alias del parametro <code>'post__in'<\/code> di <code>WP_Query<\/code>.<\/li>\n<li><code>'exclude'<\/code> \u00e8 un elenco separato da virgole di ID di post.<\/li>\n<li><code>'suppress_filters'<\/code> specifica se sopprimere i filtri. In <code>get_posts<\/code>, questo parametro \u00e8 di default su <code>true<\/code>, mentre \u00e8 impostato su <code>false<\/code> in <code>WP_Query<\/code> (<a href=\"https:\/\/core.trac.wordpress.org\/browser\/tags\/5.2\/src\/wp-includes\/class-wp-query.php#L709\">si veda il Track<\/a>).<\/li>\n<\/ul>\n<p>La funzione <code>get_posts<\/code> \u00e8 definita in <code>wp-includes\/post.php<\/code>. Potete approfondire il funzionamento di <code>get_posts<\/code> analizzando il codice sorgente <a href=\"https:\/\/core.trac.wordpress.org\/browser\/tags\/5.2\/src\/wp-includes\/post.php#L1901\">sul Track (WordPress 5.2)<\/a> o nella vostra installazione locale di WordPress.<\/p>\n<h3>Ordinare gli Elementi<\/h3>\n<p><code>'orderby'<\/code> e <code>'order'<\/code> ordinano gli elementi del result set. Potete ordinare i post per <code>'ID'<\/code>, <code>'author'<\/code>, <code>'title'<\/code>, <code>'name'<\/code>, <code>'type'<\/code>, <code>'date'<\/code>, <code>'modified'<\/code>, <code>'parent'<\/code>, <code>'rand'<\/code>, <code>'comment_count'<\/code> e in molti altri modi, in ordine crescente o decrescente.<\/p>\n<p>Se avete una query semplice, dovete solo impostare un valore per <code>'order'<\/code> e <code>'orderby'<\/code>. Nell&#8217;esempio che segue, i post sono disposti in ordine crescente:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'author'\t=&gt; '1,5,12',\n\t'orderby'\t=&gt; 'name',\n\t'order'\t\t=&gt; 'ASC'\n);<\/code><\/pre>\n<p>\u00c8 abbastanza semplice. E se avessimo una query avanzata? Vale a dire: possiamo ordinare gli elementi in base a uno o pi\u00f9 valori di custom field in una meta query avanzata?<\/p>\n<p>WordPress 4.0 e <a href=\"https:\/\/make.wordpress.org\/core\/2015\/03\/30\/query-improvements-in-wp-4-2-orderby-and-meta_query\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress 4.2 hanno apportato importanti miglioramenti<\/a> ai parametri <code>'orderby'<\/code> e <code>'meta_query'<\/code>. Ora abbiamo a disposizione una nuova sintassi per l&#8217;ordinamento in base a specifiche clausole di una meta query. Grazie alla nuova sintassi, possiamo utilizzare degli indici per creare riferimenti dal parametro <code>'orderby'<\/code> a clausole specifiche della meta query.<\/p>\n<p>Grazie a questi miglioramenti, la meta query dell&#8217;esempio visto sopra pu\u00f2 essere scritta come segue:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\t'year_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\t'price_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t),\n\t'orderby' =&gt; 'price_clause',\n);<\/code><\/pre>\n<p>Nell&#8217;esempio qui sopra abbiamo ordinato gli elementi per <code>'price_clause'<\/code>.<\/p>\n<p>E possiamo fare ancora di pi\u00f9. <a href=\"https:\/\/make.wordpress.org\/core\/2014\/08\/29\/a-more-powerful-order-by-in-wordpress-4-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">A partire da WordPress 4.0<\/a>, possiamo passare a <code>get_posts<\/code> un array di indici di meta query anzich\u00e9 un singolo indice, come vediamo nell&#8217;esempio che segue:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\t'year_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\t'price_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t),\n\t'orderby' =&gt; array( 'price_clause' =&gt; 'ASC', 'year_clause' =&gt; 'DESC' ),\n);<\/code><\/pre>\n<p>Congratulazioni, avete creato una meta query avanzata e ordinato i risultati prima per <code>'price_clause'<\/code> in ordine crescente, quindi per <code>'year_clause'<\/code> in ordine decrescente.<\/p>\n<p>Vedi l&#8217;<a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#order-orderby-parameters\" target=\"_blank\" rel=\"noopener noreferrer\">elenco completo delle opzioni di ordinamento<\/a> nel Codex.<\/p>\n<p>\u00c8 il momento per noi di visualizzare i dati sulla pagina frontale.<\/p>\n<p>Lettura consigliata: <a href=\"https:\/\/kinsta.com\/it\/blog\/phpinfo\/\">Come creare e utilizzare facilmente una pagina phpinfo<\/a>.<\/p>\n<h2 id=\"display\">Come Visualizzare i Dati Forniti da get_posts<\/h2>\n<p>La funzione <code>get_posts<\/code> di WordPress restituisce un array di <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_post\/\" target=\"_blank\" rel=\"noopener noreferrer\">oggetti <code>WP_Post<\/code><\/a> che danno accesso a numerose variabili per ogni post selezionato memorizzato nella tabella del database <code>wp_posts<\/code>:<\/p>\n<ul>\n<li>ID<\/li>\n<li>post_author<\/li>\n<li>post_name<\/li>\n<li>post_type<\/li>\n<li>post_title<\/li>\n<li>post_date<\/li>\n<li>post_date_gmt<\/li>\n<li>post_content<\/li>\n<li>post_excerpt<\/li>\n<li>post_status<\/li>\n<li>comment_status<\/li>\n<li>ping_status<\/li>\n<li>post_password<\/li>\n<li>post_parent<\/li>\n<li>post_modified<\/li>\n<li>post_modified_gmt<\/li>\n<li>comment_count<\/li>\n<li>menu_order<\/li>\n<\/ul>\n<figure style=\"width: 2176px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/08\/tabella-wp-posts-1.png\" alt=\"WordPress get_posts: tabella wp_posts\" width=\"2176\" height=\"1542\"><figcaption class=\"wp-caption-text\">Struttura della tabella wp_posts in phpMyAdmin<\/figcaption><\/figure>\n<p>Potete accedere facilmente a questi dati con un ciclo <code>foreach<\/code> come il seguente:<\/p>\n<pre><code class=\"language-php\">$custom_posts = get_posts( $args );\n\nif( ! empty( $custom_posts ) ){\n\t$output = '&lt;ul&gt;';\n\tforeach ( $custom_posts as $p ){\n\n\t\t$output .= '&lt;li&gt;&lt;a href=\"' \n\t\t. get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t. $p-&gt;post_title . '&lt;\/a&gt;&lt;\/li&gt;';\n\t}\n\n\t$output .= '&lt;\/ul&gt;';\n}\n\nreturn $output ?? '&lt;strong&gt;Sorry. No posts matching your criteria!&lt;\/strong&gt;';<\/code><\/pre>\n<p>Se <code>get_posts<\/code> trova almeno un post, restituisce un array di elementi tra cui possiamo iterare per mostrare il titolo del post e un link al post originale. Abbiamo usato la <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_permalink\/\" target=\"_blank\" rel=\"noopener noreferrer\">funzione <code>get_permalink<\/code><\/a> per recuperare il permalink del post, dato che non abbiamo una variabile <code>WP_Post<\/code> corrispondente.<\/p>\n<p>\u00c8 abbastanza facile, ma come possiamo implementare questo codice per creare i nostri elenchi personalizzati di post usando la funzione <code>get_posts<\/code> di WordPress?<\/p>\n<p>Potete mostrare elenchi di post sulle vostre pagine in molti modi.<\/p>\n<ul>\n<li>Potete includerli ovunque nella pagina modificando il <a href=\"https:\/\/kinsta.com\/it\/blog\/child-theme-wordpress\/\">template pagina del child theme<\/a>.<\/li>\n<li>Potete includerli nel <a href=\"https:\/\/kinsta.com\/it\/blog\/widget-wordpress\/\">widget di una sidebar<\/a>.<\/li>\n<li>Potete includerli con uno shortcode personale.<\/li>\n<\/ul>\n<h2 id=\"example\">Un Esempio Reale: Visualizzare un Elenco di Post Altamente Personalizzato con un Shortcode Personale<\/h2>\n<p>Vi mostrer\u00f2 come creare un semplice e veloce shortcode per inserire i vostri contenuti. Tuttavia, qui non approfondir\u00f2 l&#8217;argomento shortcode, in quanto abbiamo gi\u00e0 affrontato questo argomento in <a href=\"https:\/\/kinsta.com\/it\/blog\/shortcode-wordpress\/\">un post precedente<\/a>.<\/p>\n<p>Prima di tutto, create una nuova directory nella cartella <code>wp-content\/plugins<\/code> della vostra <a href=\"https:\/\/kinsta.com\/it\/blog\/installare-wordpress-in-locale\/\">installazione locale di WordPress<\/a> o in un <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/ambienti-di-staging\/\">ambiente di staging<\/a>. In questo esempio, ho chiamato la directory <strong>kinsta-shortcodes<\/strong>.<\/p>\n<p>In <code>wp-content\/plugins\/<strong>kinsta-shortcodes<\/strong>\/<\/code> create un file .php con lo stesso nome della nuova directory: <code>kinsta-shortcodes.php<\/code>.<\/p>\n<p>Aprite il nuovo file nel vostro <a href=\"https:\/\/kinsta.com\/it\/blog\/migliori-editor-di-testo\/\">editor di testo preferito<\/a> e inserite la seguente intestazione:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * @package Kinsta_shortcodes\n * @version 1.0\n *\/\n\/*\nPlugin Name: Kinsta shortcodes\nPlugin URI: http:\/\/wordpress.org\/extend\/plugins\/#\nDescription: This is an example plugin \nAuthor: Your Name\nVersion: 1.0\nAuthor URI: https:\/\/yourwebsite.com\/\n*\/<\/code><\/pre>\n<p>Ora abbiamo un bel plugin nuovo nuovo, ma che non fa ancora nulla. Andate nella pagina di amministrazione <strong>Plugin<\/strong> nella <a href=\"https:\/\/kinsta.com\/it\/blog\/amministrazione-wordpress\/\">dashboard di WordPress<\/a> e attivate il nuovo plugin assicurandovi di di aver impostato <a href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-debug\/#how-to-manually-enable-wordpress-debug-mode\"><code>WP_DEBUG<\/code> su <code>true<\/code><\/a> nel vostro file <code>wp-config.php<\/code>.<\/p>\n<p>La vostra sandbox \u00e8 ora pronta per i vostri hack. Il passo successivo \u00e8 registrare un hook per uno shortcode personale:<\/p>\n<pre><code class=\"language-php\">\/**\n * Add a hook for a shortcode tag\n *\/\nfunction kinsta_shortcodes_init(){\n\tadd_shortcode( 'kinsta_get_posts', 'kinsta_get_posts_cb' );\n}\nadd_action('init', 'kinsta_shortcodes_init');<\/code><\/pre>\n<p><code>kinsta_get_posts<\/code> \u00e8 il nome dello shortcode e <code>kinsta_get_posts_cb<\/code> \u00e8 la callback definita di seguito:<\/p>\n<pre><code class=\"language-php\">\/**\n * Register a shortcode\n *\n * @param array $atts Array of shortcode attributes\n *\/\nfunction kinsta_get_posts_cb( $atts ){\n\n\t\/\/ safely extract custom arguments and set default values\n\textract( shortcode_atts(\n\t\t\tarray(\n\t\t\t\t'numberposts'\t\t=&gt; 3,\n\t\t\t\t'post_type'\t\t\t=&gt; 'post',\n\t\t\t\t'book_category'\t\t=&gt; 'fantasy',\n\t\t\t\t'year_published'\t=&gt; 1900,\n\t\t\t\t'price_min'\t\t\t=&gt; 0,\n\t\t\t\t'price_max'\t\t\t=&gt; 50\n\t\t\t),\n\t\t\t$atts,\n\t\t\t'kinsta_get_posts'\n\t\t) );\n\n\t\/\/ define the array of query arguments\n\t$args = array(\n\t\t'numberposts'\t=&gt; $numberposts,\n\t\t'post_type'\t\t=&gt; $post_type,\n\t\t'tax_query'\t\t=&gt; array(\n\t\t\tarray(\n\t\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t\t'terms'\t\t=&gt; $book_category,\n\t\t\t)\n\t\t),\n\t\t'meta_query'\t=&gt; array(\n\t\t\t'relation'\t\t=&gt; 'AND',\n\t\t\t'year_clause'\t=&gt; array(\n\t\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t\t'value'\t\t=&gt; $year_published,\n\t\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t\t'compare'\t=&gt; '&gt;',\n\t\t\t),\n\t\t\t'price_clause'\t=&gt; array(\n\t\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t\t'value'\t\t=&gt; array( $price_min, $price_max ),\n\t\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t\t)\n\t\t),\n\t\t'orderby' =&gt; array( 'price_clause' =&gt; 'ASC' )\n\t);\n\n\t$custom_posts = get_posts( $args );\n\n\tif( ! empty( $custom_posts ) ){\n\t\t$output = '&lt;ul&gt;';\n\t\tforeach ( $custom_posts as $p ){\n\n\t\t\t$output .= '&lt;li&gt;&lt;a href=\"' \n\t\t\t. get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t\t. $p-&gt;post_title . '&lt;\/a&gt; (' \n\t\t\t. get_post_meta( $p-&gt;ID, 'year_published', true ) \n\t\t\t. ') - Price: ' . get_post_meta( $p-&gt;ID, 'price', true ) . '&lt;\/li&gt;';\n\t\t}\n\n\t\t$output .= '&lt;\/ul&gt;';\n\t}\n\nreturn $output ?? '&lt;strong&gt;Sorry. No posts matching your criteria!&lt;\/strong&gt;';<\/code><\/pre>\n<p>Abbiamo impostato sei attributi di shortcode che utilizziamo per definire un array di parametri, che viene infine passato alla funzione <code>get_posts<\/code> di WordPress. Se <code>$custom_posts<\/code> non \u00e8 vuoto, un ciclo <code>foreach<\/code> genera l&#8217;HTML di un elenco non ordinato di elementi.<\/p>\n<p>Ora voi e gli autori del vostro blog potete includere elenchi di post utilizzando uno shortcode come quello che segue:<\/p>\n<pre>[kinsta_get_posts post_type=\"book\" book_category=\"sci-fi\" numberposts=\"4\" price_min=1 price_max=250]<\/pre>\n<p>Ovviamente, potete modificare l&#8217;array di argomenti ed eseguire i test su qualsiasi post o pagina del vostro sito di sviluppo.<\/p>\n<figure id=\"attachment_28864\" aria-describedby=\"caption-attachment-28864\" style=\"width: 1532px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-28864\" src=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/get_posts-lista-avanzata-1.png\" alt=\"elenco avanzato di post\" width=\"1532\" height=\"1066\" srcset=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/get_posts-lista-avanzata-1.png 1532w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/get_posts-lista-avanzata-1-300x209.png 300w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/get_posts-lista-avanzata-1-768x534.png 768w, https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/get_posts-lista-avanzata-1-1024x713.png 1024w\" sizes=\"auto, (max-width: 1532px) 100vw, 1532px\" \/><figcaption id=\"caption-attachment-28864\" class=\"wp-caption-text\">Un elenco avanzato di post generato con la funzione get_posts<\/figcaption><\/figure>\n\n<h2>Riepilogo<\/h2>\n<p>La funzione <code>get_posts<\/code> di WordPress \u00e8 una potente funzione che consente agli sviluppatori di includere elenchi di post ovunque sul frontend del proprio sito WordPress. Utilizza <code>WP_Query<\/code>, ma \u00e8 pi\u00f9 facile da usare di <code>WP_Query<\/code> ed \u00e8 preferibile quando avete bisogno di elenchi di post. Ad ogni modo, un riferimento diretto a <code>WP_Query<\/code> \u00e8 consigliabile quando \u00e8 necessario visualizzare post in un <a href=\"https:\/\/codex.wordpress.org\/The_Loop\" target=\"_blank\" rel=\"noopener noreferrer\">Loop<\/a>.<\/p>\n<p>Allora, create i vostri elenchi, provate il vostro codice e, quando siete sicuri che funzioni bene, allora (e solo allora) mettetelo in produzione (ma <a href=\"https:\/\/kinsta.com\/it\/blog\/plugin-backup-wordpress\/\">prima eseguite un backup<\/a>).<\/p>\n<p>Ora vorremmo sentire voi. Qual \u00e8 la vostra esperienza con la funzione <code>get_posts<\/code> di WordPress? Avere dei casi d&#8217;uso da condividere con noi? Fatelo nei commenti qui sotto!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La funzione get_posts di WordPress \u00e8 una potente funzione che consente agli sviluppatori di recuperare parti di contenuto dal database di WordPress. Potete specificare i post, &#8230;<\/p>\n","protected":false},"author":36,"featured_media":28727,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[32,7268],"topic":[26187,26189],"class_list":["post-28725","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-sviluppo-web","tag-wp_query","topic-funzione-php","topic-impara-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli<\/title>\n<meta name=\"description\" content=\"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli\" \/>\n<meta property=\"og:description\" content=\"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-24T14:47:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-01T12:32:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli\",\"datePublished\":\"2019-10-24T14:47:22+00:00\",\"dateModified\":\"2023-02-01T12:32:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\"},\"wordCount\":2319,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png\",\"keywords\":[\"sviluppo web\",\"WP_Query\"],\"articleSection\":[\"Sviluppo WordPress\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\",\"name\":\"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png\",\"datePublished\":\"2019-10-24T14:47:22+00:00\",\"dateModified\":\"2023-02-01T12:32:56+00:00\",\"description\":\"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png\",\"width\":1460,\"height\":730,\"caption\":\"wordpress get_posts\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Impara PHP\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/impara-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli","description":"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/","og_locale":"it_IT","og_type":"article","og_title":"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli","og_description":"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!","og_url":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2019-10-24T14:47:22+00:00","article_modified_time":"2023-02-01T12:32:56+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Carlo Daniele","Tempo di lettura stimato":"17 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli","datePublished":"2019-10-24T14:47:22+00:00","dateModified":"2023-02-01T12:32:56+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/"},"wordCount":2319,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png","keywords":["sviluppo web","WP_Query"],"articleSection":["Sviluppo WordPress"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/","url":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/","name":"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png","datePublished":"2019-10-24T14:47:22+00:00","dateModified":"2023-02-01T12:32:56+00:00","description":"Devi creare elenchi di post, pagine o custom post type? Scopri come farlo con la funzione get_posts di WordPress!","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2019\/10\/wordpress-get_posts.png","width":1460,"height":730,"caption":"wordpress get_posts"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/wordpress-get_posts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Impara PHP","item":"https:\/\/kinsta.com\/it\/argomenti\/impara-php\/"},{"@type":"ListItem","position":3,"name":"La Funzione get_posts di WordPress: Come Utilizzare Questa Utilissima Funzione per Creare Elenchi di Articoli"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/it\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/28725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=28725"}],"version-history":[{"count":14,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/28725\/revisions"}],"predecessor-version":[{"id":64563,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/28725\/revisions\/64563"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/en"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/pt"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/fr"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/nl"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/it"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/se"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/translations\/jp"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/28725\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/28727"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=28725"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=28725"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=28725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}