{"id":233972,"date":"2023-02-26T17:58:00","date_gmt":"2023-02-26T14:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233972"},"modified":"2022-11-11T13:30:09","modified_gmt":"2022-11-11T10:30:09","slug":"tutorial-sul-tema-wordpress-per-principianti-parte-4-the-post-loop","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/tutorial-sul-tema-wordpress-per-principianti-parte-4-the-post-loop\/","title":{"rendered":"Tutorial sul tema WordPress per principianti \u2013 Parte 4: The Post Loop"},"content":{"rendered":"\n<p>In questa lezione del tutorial sul tema WordPress per principianti entreremo nel dettaglio del &quot;ciclo dei post&quot; in WordPress; cos&#8217;\u00e8, come appare, perch\u00e9 lo usiamo e come accedere ai post. Passeremo quindi all&#8217;implementazione del loop nel nostro tema.<\/p>\n<h2>Il ciclo della posta<\/h2>\n<p>Se hai familiarit\u00e0 con PHP potresti riconoscere che un &quot;loop&quot; \u00e8 una tecnica per passare attraverso ogni elemento in un array o oggetto con <code>for<\/code>, <code>foreach<\/code>o <code>while<\/code>. Il ciclo in WordPress funziona proprio cos\u00ec. Ma utilizzeremo le funzioni proprie di WordPress per eseguire il loop al fine di ottenere alcuni vantaggi e semplificazioni aggiuntivi.<\/p>\n<p>In ogni momento, WordPress ha gi\u00e0 interrogato i post per te, a seconda della pagina in cui ti trovi. Se ti trovi in \u200b\u200buna pagina di categoria, WordPress ha gi\u00e0 interrogato tutti i post associati a questa categoria, e se ti trovi in \u200b\u200buna singola pagina di post, WordPress ha gi\u00e0 recuperato quel post per te.<\/p>\n<p>Quando vogliamo accedere ai post che WordPress ha interrogato nei nostri modelli, aggiungiamo il loop. All&#8217;interno del loop abbiamo accesso a ogni post. E per ogni post decidiamo cosa mostrare o fare.<\/p>\n<p>Nota: anche nei modelli di post singolo o pagina singola aggiungerai un loop, anche se sappiamo che contiene solo un post! Il ciclo viene eseguito solo una volta.<\/p>\n<p>Ecco il ciclo di WordPress in tutto il suo splendore:<\/p>\n<pre><code>while (have_posts()): the_post();\n    \/\/ Access to each post here\nendwhile;<\/code><\/pre>\n<p>Questo pezzo di codice fa due cose. La <code>while<\/code>parte (incluso il <code>endwhile<\/code>) \u00e8 la parte in loop che verr\u00e0 ripetuta per quanto tempo rimangano dei post. La seconda parte \u00e8 quella <code>the_post()<\/code>che imposta un accesso semplificato e intuitivo all&#8217;oggetto post all&#8217;interno del loop. Ne sapremo di pi\u00f9 in seguito.<\/p>\n<p>\u00c8 buona norma racchiudere il ciclo all&#8217;interno di un <code>if<\/code>controllo che controlla se ci sono effettivamente dei post da scorrere. Quindi possiamo anche facoltativamente mostrare un messaggio se non ci fosse. La query del post potrebbe essere vuota se si passa a un archivio di categorie vuoto o si tenta di cercare qualcosa che non ha risultati. Questa \u00e8 una versione migliore del ciclo:<\/p>\n<pre><code>if (have_posts()) {\n    while (have_posts()): the_post();\n        \/\/ Access to each post here\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}<\/code><\/pre>\n<p>Prendi familiarit\u00e0 con questo pezzo di codice poich\u00e9 lo ripeterai ogni volta che vorrai accedere ai post! Implementiamo il ciclo nel nostro tema.<\/p>\n<h2>Implementazione del ciclo nel nostro tema<\/h2>\n<p>Aggiungiamo il ciclo nel nostro <code>index.php<\/code>, sostituendo il testo fittizio.<\/p>\n<pre><code>&lt;?php get_header(); ?&gt;\n&lt;?php \nif (have_posts()) {\n    while (have_posts()): the_post();\n        the_title();\n    endwhile;\n} else {\n    ?&gt;&lt;p&gt;No posts, sorry.&lt;\/p&gt;&lt;?php\n}\n?&gt;\n&lt;?php get_sidebar(); ?&gt;\n&lt;?php get_footer(); ?&gt;<\/code><\/pre>\n<p>Ho aggiunto una funzione chiamata <code>the_title()<\/code>all&#8217;interno del ciclo che fa eco al titolo del post. Questo \u00e8 solo per quello che possiamo vedere il ciclo in pratica. Non preoccuparti, nel <a href=\"http:\/\/awhitepixel.com\/blog\/wordpress-theme-tutorial-for-beginners-part-5-accessing-post-information\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">passaggio successivo<\/a> impareremo tutto sull&#8217;accesso a tutte le informazioni sul post effettivo.<\/p>\n<p>Vediamo cosa succede in WordPress ora. Aggiorna la prima pagina. A seconda delle tue impostazioni e dei tuoi contenuti dovresti vedere apparire alcuni titoli. Nel mio WordPress ho il post predefinito &quot;Hello world!&quot; e un altro post che ho creato intitolato &quot;Questo \u00e8 un altro post&quot;. Questo \u00e8 quello che ottengo in prima pagina:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151614-61e4cd1ab5812.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151614-61e4cd1ab5812.png\" alt=\"Tutorial sul tema WordPress per principianti \u2013 Parte 4: The Post Loop\" ><\/a><\/p>\n<p>Se provi a visitare una singola pagina di post, dovresti vedere solo un titolo, il titolo del post che stai visualizzando. Simpatico!<\/p>\n<h3>Per i curiosi&#8230;<\/h3>\n<p>Se sei curioso di sapere quale ciclo sta attraversando e quali parametri WordPress ha utilizzato per questa query, puoi verificarlo. La variabile globale a cui si riferisce il ciclo si chiama <code>$wp_query<\/code>. \u00c8 necessario definirlo globale per accedervi. Prova a utilizzare <code>var_dump()<\/code>per stamparne l&#8217;intero contenuto. Il ciclo sta attraversando la <code>$wp_query-&gt;posts<\/code>propriet\u00e0.<\/p>\n<pre><code>global $wp_query;\nvar_dump($wp_query);<\/code><\/pre>\n<p>Aggiungiamo un dettaglio importante al nostro loop in <code>index.php<\/code>; un modo per l&#8217;utente di passare alla pagina successiva e precedente dei post.<\/p>\n<h2>Aggiunta della navigazione del ciclo post<\/h2>\n<p>Tieni presente che il ciclo recuperer\u00e0 il numero di post definito nelle tue Impostazioni di WordPress &gt; Lettura, ogni volta che ti trovi in \u200b\u200buna pagina che mostra pi\u00f9 post. Se ci sono pi\u00f9 post disponibili nel loop rispetto al numero qui definito, abbiamo bisogno di un modo per navigare tra le pagine. Per questo possiamo usare la funzione <code>the_posts_pagination()<\/code>.<\/p>\n<p>Questa funzione accetta <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_posts_pagination\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">alcuni parametri<\/a> per personalizzarne l&#8217;output. \u00c8 possibile definire il numero di pagine tra i puntini di sospensione (quando sono presenti molte pagine). Puoi anche definire quali dovrebbero essere i testi per i collegamenti alla pagina &quot;Precedente&quot; e &quot;Avanti&quot;. Lo aggiunger\u00f2 senza alcun parametro per eseguire le impostazioni predefinite, ma puoi regolarlo se lo desideri.<\/p>\n<pre><code>...\n    while (have_posts()): the_post();\n        the_title();\n    endwhile;\n    the_posts_pagination();\n} else {\n...<\/code><\/pre>\n<p>Questa funzione non produce assolutamente nulla se ci sono post inferiori o uguali al numero di post per impostazione di pagina. Quindi non preoccuparti se pensi di aver sbagliato perch\u00e9 non vedi alcun output. Una volta che ci sono pi\u00f9 post che post per pagina, questa funzione genera un div, un&#8217;intestazione per i lettori di schermo (che in genere nascondi con CSS) e una serie di collegamenti di impaginazione.<\/p>\n<p>Ora che sappiamo come accedere a qualsiasi post che WordPress ha trovato per noi, il passo successivo \u00e8 imparare come mostrare ci\u00f2 che vogliamo da ogni post; all&#8217;interno del ciclo.<\/p>\n<h2>Documentazione sui metodi utilizzati<\/h2>\n<ul>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/have_posts\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">have_posts<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/the_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">il_post<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_title\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">il titolo<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_posts_pagination\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la_post_impaginazione<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questa lezione sul tema WordPress per principianti entreremo nel dettaglio del ciclo dei post in WordPress; cos&#8217;\u00e8, come funziona e perch\u00e9 lo usiamo.<\/p>\n","protected":false},"author":1,"featured_media":223872,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,896,720,835,918,1110,835,928,720,928,844,844,865,865],"tags":[1168],"class_list":["post-233972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-sviluppatore","category-guida-per-principianti","category-n-a","category-soggetti","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=233972"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233972\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/223872"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}