{"id":23867,"date":"2025-09-22T15:55:14","date_gmt":"2025-09-22T13:55:14","guid":{"rendered":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/"},"modified":"2025-09-22T15:55:14","modified_gmt":"2025-09-22T13:55:14","slug":"la-struttura-del-sito-web","status":"publish","type":"post","link":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/","title":{"rendered":"La struttura del sito web"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Nella lezione precedente abbiamo registrato la struttura di una collezione di contenuti <strong>Astro<\/strong> e creato una serie di post in formato <a href=\"https:\/\/www.html.it\/articoli\/markdown-guida-al-linguaggio\/\" target=\"_blank\" rel=\"noopener\">Markdown<\/a>.<\/p>\n<p>In questa lezione vedremo come creare la pagina del sito web in cui visualizzare le anteprime dei post e le pagine dei singoli post. A questo scopo utilizzeremo delle potenti funzionalit\u00e0 di Astro: componenti e routing dinamico. Infine, utilizzeremo la libreria <a href=\"https:\/\/www.html.it\/guide\/alpine-js-la-guida-completa\/\" target=\"_blank\" rel=\"noopener\">Alpine.js<\/a> per impaginare i risultati del blog.<\/p>\n<p>Iniziamo creando due componenti. Il primo per generare l&#8217;anteprima degli articoli del blog, il secondo per i singoli articoli.<\/p>\n<h2 id=\"la-struttura-del-sito-web-un-blog-in-astro\">La struttura del sito web: un blog in Astro<\/h2>\n<p>Cominciamo dal blog. Creiamo il file <code>ArticleCard.astro<\/code> nella cartella <code>\/src\/components<\/code> con il seguente codice:<\/p>\n<pre><code class=\"language-javascript\">---\nimport type { CollectionEntry } from 'astro:content';\ninterface Props {\n\tpost: CollectionEntry&lt;'blog'&gt;;\n}\nconst { post } = Astro.props;\n---<\/code><\/pre>\n<p>Questo \u00e8 il codice del <strong>frontmatter del componente<\/strong>. Ecco cosa fa:<\/p>\n<ul>\n<li><code>import type { CollectionEntry }<\/code> importa i tipi di <a href=\"https:\/\/www.html.it\/guide\/guida-typescript\/\" target=\"_blank\" rel=\"noopener\">TypeScript<\/a> da Astro;<\/li>\n<li><code>interface Props { ... }<\/code> dichiara le propriet\u00e0 che il componente si aspetta di ricevere; post: <code>CollectionEntry&lt;'blog'&gt;<\/code> significa che la propriet\u00e0 deve essere un intero oggetto della collezione <code>blog<\/code>;<\/li>\n<li><code>const { post } = Astro.props;<\/code> accetta i dati che vengono passati al componente.<\/li>\n<\/ul>\n<p>Subito sotto il frontmatter, aggiungiamo il codice <a href=\"https:\/\/www.html.it\/guide\/guida-html\/\" target=\"_blank\" rel=\"noopener\">HTML<\/a> che genera la struttura del componente:<\/p>\n<pre><code class=\"language-markup\">&lt;a href={`\/blog\/${post.slug}\/`} class=\"block group hover:no-underline focus:outline-none focus:ring-2 focus:ring-purple-500 rounded-lg\"&gt;\n\t&lt;article class=\"bg-white p-6 rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 h-full flex flex-col\"&gt;\n\t\t&lt;!-- Immagine (se presente) --&gt;\n\t\t{post.data.heroImage &amp;&amp; (\n\t\t\t&lt;div class=\"mb-4\"&gt;\n\t\t\t\t&lt;img\n\t\t\t\t\tsrc={post.data.heroImage}\n\t\t\t\t\talt={`Immagine per ${post.data.title}`}\n\t\t\t\t\tclass=\"w-full h-48 object-cover rounded-md\"\n\t\t\t\t\/&gt;\n\t\t\t&lt;\/div&gt;\n\t\t)}\n\t\t&lt;div class=\"flex flex-col flex-grow\"&gt;\n\t\t\t&lt;!-- Data del post --&gt;\n\t\t\t&lt;p class=\"text-sm text-gray-500\"&gt;\n\t\t\t\t{new Date(post.data.pubDate).toLocaleDateString('it-IT', { year: 'numeric', month: 'long', day: 'numeric' })}\n\t\t\t&lt;\/p&gt;\n\t\t\t&lt;!-- Titolo del post --&gt;\n\t\t\t&lt;h2 class=\"text-2xl font-bold mt-2 text-gray-900 group-hover:text-purple-600 transition-colors duration-300\"&gt;\n\t\t\t\t{post.data.title}\n\t\t\t&lt;\/h2&gt;\n\t\t\t&lt;!-- Descrizione --&gt;\n\t\t\t&lt;p class=\"text-gray-700 mt-3 flex-grow\"&gt;\n\t\t\t\t{post.data.description}\n\t\t\t&lt;\/p&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/article&gt;\n&lt;\/a&gt;<\/code><\/pre>\n<ul>\n<li>L&#8217;intero componente \u00e8 racchiuso in un tag <code>&lt;a&gt;<\/code>, che far\u00e0 s\u00ec che l&#8217;intera card sia un&#8217;unica area cliccabile;<\/li>\n<li><code>href={\/blog\/${post.slug}\/`}<\/code> genera dinamicamente l&#8217;URL della pagina di destinazione. Questo in quanto Astro genera automaticamente il campo slug per ogni post in base al nome del file Markdown (es. <code>primo-post.md<\/code> produce <code>post.slug = 'primo-post'<\/code>).<\/li>\n<li><code>{post.data.heroImage &amp;&amp; (...) }<\/code> \u00e8 un rendering condizionale che verifica l&#8217;esistenza di <code>post.data.heroImage<\/code> e, se la condizione \u00e8 vera, visualizza il codice tra parentesi.<\/li>\n<li><code>post.data.pubDate<\/code>, <code>post.data.title<\/code> e <code>post.data.description<\/code> generano data, titolo e descrizione del post.<\/li>\n<\/ul>\n<h2 id=\"la-pagina-del-blog\">La pagina del blog<\/h2>\n<p>Ora dobbiamo creare la pagina che usa questo componente. Spostiamoci nella cartella <code>\/src\/pages<\/code> e creiamo la cartella <code>blog<\/code>. Qui creiamo il file <code>index.astro<\/code> e aggiungiamo il seguente codice:<\/p>\n<pre><code class=\"language-markup\">---\nimport { getCollection, type CollectionEntry } from 'astro:content';\nimport Layout from '..\/..\/layouts\/Layout.astro';\nimport ArticleCard from '..\/..\/components\/ArticleCard.astro';\n\/\/ --- IMPOSTAZIONI ---\nconst POSTS_PER_PAGE = 3;\n\/\/ Ordina in modo discendente i post per data\nconst sortedPosts = (await getCollection('blog')).sort(\n\t\t(a: CollectionEntry&lt;'blog'&gt;, b: CollectionEntry&lt;'blog'&gt;) =&gt;\n\t\t\t\tb.data.pubDate.getTime() - a.data.pubDate.getTime()\n);\nconst totalPosts = sortedPosts.length;\n---\n&lt;Layout\n\ttitle=\"Il Mio Blog\"\n\tdescription=\"Una raccolta dei miei pensieri e tutorial sullo sviluppo web.\"\n&gt;\n\t&lt;h1 class=\"text-4xl font-extrabold text-gray-900 mb-8\"&gt;Tutti gli Articoli&lt;\/h1&gt;\n\t&lt;div\n\t\tx-data={`{ visibleItems: ${POSTS_PER_PAGE} }`}\n\t\tx-cloak\n\t&gt;\n\t\t&lt;div class=\"grid gap-10\"&gt;\n\t\t\t{sortedPosts.length &gt; 0 ? (\n\t\t\t\tsortedPosts.map((post, index) =&gt; (\n\t\t\t\t\t&lt;div x-show={`${index} &lt; visibleItems`}&gt;\n\t\t\t\t\t\t&lt;ArticleCard post={post} \/&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t))\n\t\t\t) : (\n\t\t\t\t&lt;p&gt;Nessun articolo disponibile.&lt;\/p&gt;\n\t\t\t)}\n\t\t&lt;\/div&gt;\n\t\t&lt;div class=\"mt-12 text-center\"&gt;\n\t\t\t&lt;button\n\t\t\t\ttype=\"button\"\n\t\t\t\tx-show={`visibleItems &lt; ${totalPosts}`}\n\t\t\t\t@click={`visibleItems += ${POSTS_PER_PAGE}`}\n\t\t\t\tclass=\"bg-purple-600 text-white font-bold py-3 px-6 rounded-lg hover:bg-purple-700 transition-colors duration-300\"\n\t\t\t&gt;\n\t\t\t\tCarica Altri Articoli\n\t\t\t&lt;\/button&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/div&gt;\n&lt;\/Layout&gt;\n&lt;style is:global&gt;\n\t[x-cloak] {\n\t\tdisplay: none !important;\n\t}\n&lt;\/style&gt;<\/code><\/pre>\n<p>Ecco cosa fa questo codice:<\/p>\n<ul>\n<li>Importa la funzione asincrona <code>getCollection<\/code>, che permette di recuperare tutti gli elementi da una collezione definita nel file <code>\/src\/content\/config.ts<\/code>.<\/li>\n<li><code>type CollectionEntry<\/code> \u00e8 il tipo di TypeScript che descrive la struttura di un singolo articolo. Importandolo esplicitamente, rendiamo il codice pi\u00f9 sicuro e conforme alle best practice.<\/li>\n<li>Importa i componenti <code>Layout<\/code> e <code>ArticleCard<\/code>.<\/li>\n<li>Imposta il limite di post per pagina.<\/li>\n<li>Recupera tutti i post della collezione (<code>getCollection('blog')<\/code>), li ordina e li memorizza in <code>sortedPosts<\/code>.<\/li>\n<li>Itera tra gli elementi dell&#8217;array visualizzando ogni post con l&#8217;elemento <code>&lt;ArticleCard&gt;<\/code>.<\/li>\n<\/ul>\n<p>Abbiamo utilizzato Alpine.js per creare un sistema di paginazione &#8220;lato client&#8221; con un pulsante che permette di mostrare altri <code>POSTS_PER_PAGE<\/code> articoli ad ogni clic:<\/p>\n<ul>\n<li><code>x-data<\/code> definisce un componente Alpine in cui <code>{ visibleItems: ${POSTS_PER_PAGE} }<\/code> rappresenta lo stato iniziale del componente (vedi <a href=\"https:\/\/www.html.it\/pag\/539405\/il-local-state-in-alpine-js-la-direttiva-x-data\/\" target=\"_blank\" rel=\"nofollow noopener\">Il local state di Alpine<\/a>);<\/li>\n<li><code>x-cloak<\/code> nasconde gli elementi finch\u00e9 Alpine.js non \u00e8 completamente inizializzato, grazie allo stile <a href=\"https:\/\/www.html.it\/guide\/guida-css-di-base\/\" target=\"_blank\" rel=\"noopener\">CSS<\/a> definito con <code>[x-cloak] { display: none !important; }<\/code>.<\/li>\n<li><code>x-show<\/code> fa in modo che la <code>div<\/code> venga visualizzata solo se ci sono elementi visibili (<code>${index} &lt; visibleItems<\/code>);<\/li>\n<li>il pulsante viene visualizzato se ci sono altri <code>visibleItems<\/code> disponibili;<\/li>\n<li>al clic sul pulsante, la propriet\u00e0 <code>visibleItems<\/code> viene incrementata di <code>POSTS_PER_PAGE<\/code>.<\/li>\n<\/ul>\n<p>Ed ecco la pagina iniziale del nostro blog:<\/p>\n<div id=\"attachment_562129\" style=\"width: 1624px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-562129\" src=\"https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg\" alt=\"La prima versione del blog Astro\" width=\"1614\" height=\"2037\" class=\"size-full wp-image-562129\" srcset=\"https:\/\/cdn.html.it\/2giudDz3bdvFh5k4yfBG4gPTpXs=\/1614x\/smart\/filters:format(webp)\/https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg 1614w, https:\/\/cdn.html.it\/XvuFs7DiplfKEDhWuRt8ZzT9z0M=\/238x\/smart\/filters:format(webp)\/https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg 238w, https:\/\/cdn.html.it\/Vg3zAAwbj5ZJQ_h9rRigncrIsaw=\/600x\/smart\/filters:format(webp)\/https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg 600w, https:\/\/cdn.html.it\/qDLuHcfrFMpWES5tCjqhZOs_jI4=\/1217x\/smart\/filters:format(webp)\/https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg 1217w\" sizes=\"(max-width: 1614px) 100vw, 1614px\"\/><\/p>\n<p id=\"caption-attachment-562129\" class=\"wp-caption-text\">La prima versione del blog Astro<\/p>\n<\/div>\n<div id=\"tagmailerContainer\">\n<p>Se vuoi aggiornamenti su <em>La struttura del sito web<\/em> inserisci la tua email nel box qui sotto:<\/p>\n<\/div>\n<p><span class=\"bm_post\" style=\"display:none\" data-domain=\"html.it\" data-author=\"unknown\" data-alias=\"unknown\" data-tipologia=\"\" data-custom=\"\" data-po=\"\" data-path=\"https:\/\/www.html.it\/pag\/562128\/la-struttura-del-sito-web\/\" data-postid=\"562128\" data-programs=\"\" data-subjects=\"\" data-themes=\"\"\/><\/p><\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/www.html.it\/pag\/562128\/la-struttura-del-sito-web\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nella lezione precedente abbiamo registrato la struttura di una collezione di contenuti Astro e creato una serie di post in formato Markdown. In questa lezione vedremo come creare la pagina del sito web in cui visualizzare le anteprime dei post e le pagine dei singoli post. A questo scopo utilizzeremo delle potenti funzionalit\u00e0 di Astro:&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":""},"categories":[37],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>La struttura del sito web - AGENZIA WEB Italia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La struttura del sito web - AGENZIA WEB Italia\" \/>\n<meta property=\"og:description\" content=\"Nella lezione precedente abbiamo registrato la struttura di una collezione di contenuti Astro e creato una serie di post in formato Markdown. In questa lezione vedremo come creare la pagina del sito web in cui visualizzare le anteprime dei post e le pagine dei singoli post. A questo scopo utilizzeremo delle potenti funzionalit\u00e0 di Astro:...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\" \/>\n<meta property=\"og:site_name\" content=\"AGENZIA WEB Italia\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-22T13:55:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\"},\"headline\":\"La struttura del sito web\",\"datePublished\":\"2025-09-22T13:55:14+00:00\",\"dateModified\":\"2025-09-22T13:55:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\"},\"wordCount\":477,\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\",\"name\":\"La struttura del sito web - AGENZIA WEB Italia\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\"},\"datePublished\":\"2025-09-22T13:55:14+00:00\",\"dateModified\":\"2025-09-22T13:55:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"La struttura del sito web\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"name\":\"AGENZIA WEB Italia\",\"description\":\"Web design Web agency Italia\",\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\",\"name\":\"Multimedia Web\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"contentUrl\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"width\":200,\"height\":57,\"caption\":\"Multimedia Web\"},\"image\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"La struttura del sito web - AGENZIA WEB Italia","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:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/","og_locale":"it_IT","og_type":"article","og_title":"La struttura del sito web - AGENZIA WEB Italia","og_description":"Nella lezione precedente abbiamo registrato la struttura di una collezione di contenuti Astro e creato una serie di post in formato Markdown. In questa lezione vedremo come creare la pagina del sito web in cui visualizzare le anteprime dei post e le pagine dei singoli post. A questo scopo utilizzeremo delle potenti funzionalit\u00e0 di Astro:...","og_url":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/","og_site_name":"AGENZIA WEB Italia","article_published_time":"2025-09-22T13:55:14+00:00","og_image":[{"url":"https:\/\/www.html.it\/app\/uploads\/2025\/09\/blog-1.jpg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/#article","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/"},"author":{"name":"admin","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42"},"headline":"La struttura del sito web","datePublished":"2025-09-22T13:55:14+00:00","dateModified":"2025-09-22T13:55:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/"},"wordCount":477,"publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"articleSection":["News"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/","name":"La struttura del sito web - AGENZIA WEB Italia","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website"},"datePublished":"2025-09-22T13:55:14+00:00","dateModified":"2025-09-22T13:55:14+00:00","breadcrumb":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/la-struttura-del-sito-web\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nycwebdesign.eu\/webdesign\/"},{"@type":"ListItem","position":2,"name":"La struttura del sito web"}]},{"@type":"WebSite","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","name":"AGENZIA WEB Italia","description":"Web design Web agency Italia","publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization","name":"Multimedia Web","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","contentUrl":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","width":200,"height":57,"caption":"Multimedia Web"},"image":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42","name":"admin","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","caption":"admin"}}]}},"_links":{"self":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/23867"}],"collection":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/comments?post=23867"}],"version-history":[{"count":0,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/23867\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/media?parent=23867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/categories?post=23867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/tags?post=23867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}