{"id":84714,"date":"2025-04-21T09:00:00","date_gmt":"2025-04-21T07:00:00","guid":{"rendered":"https:\/\/supporthost.com\/it\/?p=84714"},"modified":"2026-03-17T16:52:51","modified_gmt":"2026-03-17T15:52:51","slug":"hook-wordpress","status":"publish","type":"post","link":"https:\/\/supporthost.com\/it\/hook-wordpress\/","title":{"rendered":"Cosa sono e come usare gli hook di WordPress"},"content":{"rendered":"\n<p>Gli hook di WordPress ci permettono di personalizzare il funzionamento del sito, aggiungere nuove funzioni o modificare il comportamento di quelle esistenti. <\/p>\n\n\n\n<p>Possiamo utilizzare gli hook (azioni e filtri) esistenti per creare delle<strong> funzioni custom <\/strong>e farle eseguire al <em>momento giusto<\/em>. Inoltre, se siamo sviluppatori di temi e plugin, possiamo <strong>creare i nostri hook<\/strong> per permettere ad altri di utilizzarli. <\/p>\n\n\n\n<p>In questa guida vedremo diversi esempi che ci aiuteranno a comprendere meglio il funzionamento e le potenzialit\u00e0 degli hook. <\/p>\n\n\n\n<p>Iniziamo!<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Indice<\/h2><nav><ul><li><a href=\"#cosa-sono-gli-hook-di-word-press\">Cosa sono gli hook di WordPress?<\/a><ul><li><a href=\"#due-tipi-di-hook-azioni-e-filtri\">Due tipi di hook: azioni e filtri<\/a><\/li><\/ul><\/li><li><a href=\"#come-sfruttare-gli-hook-su-un-sito-word-press\">Come sfruttare gli hook su un sito WordPress<\/a><ul><li><a href=\"#come-si-inseriscono-gli-hook\">Come si inseriscono gli hook?<\/a><\/li><li><a href=\"#da-dove-si-parte-per-creare-un-hook\">Da dove si parte per creare un hook?<\/a><\/li><\/ul><\/li><li><a href=\"#come-funzionano-le-azioni\">Come funzionano le azioni<\/a><ul><li><a href=\"#esempio-come-usare-un-hook-per-aggiungere-un-elemento-nel-menu-di-amministrazione\">Esempio: come usare un hook per aggiungere un elemento nel menu di amministrazione<\/a><\/li><li><a href=\"#esempio-usare-un-hook-per-registrare-uno-shortcode-o-un-blocco-gutenberg-personalizzato\">Esempio: usare un hook per registrare uno shortcode o un blocco Gutenberg personalizzato<\/a><\/li><li><a href=\"#esempio-usare-un-hook-per-mettere-word-press-in-manutenzione\">Esempio: usare un hook per mettere WordPress in manutenzione<\/a><\/li><\/ul><\/li><li><a href=\"#come-funzionano-i-filtri\">Come funzionano i filtri<\/a><ul><li><a href=\"#esempio-come-modificare-il-testo-nel-footer-area-amministrazione\">Esempio: come modificare il testo nel footer (area amministrazione)<\/a><\/li><li><a href=\"#esempio-rendere-maiuscole-le-iniziali-dei-titoli\">Esempio: rendere maiuscole le iniziali dei titoli<\/a><\/li><li><a href=\"#esempio-modificare-la-lista-delle-azioni-sui-post\">Esempio: modificare la lista delle azioni sui post<\/a><\/li><li><a href=\"#esempio-permettere-il-caricamento-di-altri-formati-di-file\">Esempio: permettere il caricamento di altri formati di file<\/a><\/li><li><a href=\"#esempio-modificare-il-messaggio-di-errore-nel-login-di-word-press\">Esempio: modificare il messaggio di errore nel login di WordPress<\/a><\/li><li><a href=\"#usare-azioni-e-filtri-inserire-un-pulsante-whats-app-su-un-sito-word-press\">Usare azioni e filtri: inserire un pulsante WhatsApp su un sito WordPress<\/a><\/li><\/ul><\/li><li><a href=\"#come-creare-degli-hook-custom\">Come creare degli hook custom<\/a><ul><li><a href=\"#best-practice-per-la-creazione-degli-hook-custom\">Best practice per la creazione degli hook custom<\/a><\/li><li><a href=\"#creare-azioni-custom\">Creare azioni custom<\/a><\/li><li><a href=\"#creare-filtri-custom\">Creare filtri custom<\/a><\/li><\/ul><\/li><li><a href=\"#conclusioni\">Conclusioni<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cosa-sono-gli-hook-di-word-press\">Cosa sono gli hook di WordPress?<\/h2>\n\n\n\n<p>Per poter aggiungere una nuova funzione, ma anche per creare plugin e temi, \u00e8 fondamentale conoscere gli hook di WordPress.<\/p>\n\n\n\n<p>Con gli hook possiamo utilizzare del <em>codice<\/em> per agganciarci a un codice gi\u00e0 esistente.<\/p>\n\n\n\n<p>Quello che si va a fare \u00e8 sfruttare il flusso di esecuzione delle operazioni di WordPress per <em>agganciarci<\/em> a un <strong>evento specifico <\/strong>che viene eseguito in un determinato momento.<\/p>\n\n\n\n<p>In pratica \u00e8 come se ci basassimo su:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>eventi che avvengono gi\u00e0 nel flusso di WordPress (ad esempio l&#8217;attivazione di un plugin \u00e8 un evento);<\/li>\n\n\n\n<li>funzioni del core.<\/li>\n<\/ul>\n\n\n\n<p>Sulla base di eventi e funzioni, possiamo creare degli hook per inserirci subito dopo quella funzione e andare a creare una <strong>funzione custom<\/strong>.<\/p>\n\n\n\n<p>Guarda l&#8217;intervista di Ivan con Giulio Delmastro e continua a leggere la guida per altri esempi di hook e filtri.<\/p>\n\n\n\n<div data-video-id=\"4fZmvsChdBU\" style=\"--btn-hover-color:#ff0000;--btn-hover-scale:1;\" class=\"wp-block-supporthost-supporthost-youtube-block\">\n    <div class=\"youtube-video-play youtube-video-play--youtube\" style=\"height:60px;\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 71.412 50\" style=\"height:60px;\"><g transform=\"scale(.58824)\"><path class=\"yt-bg\" fill=\"rgba(0,0,0,0.8)\" d=\"M118.9 13.3c-1.4-5.2-5.5-9.3-10.7-10.7C98.7 0 60.7 0 60.7 0s-38 0-47.5 2.5C8.1 3.9 3.9 8.1 2.5 13.3 0 22.8 0 42.5 0 42.5s0 19.8 2.5 29.2C3.9 76.9 8 81 13.2 82.4 22.8 85 60.7 85 60.7 85s38 0 47.5-2.5c5.2-1.4 9.3-5.5 10.7-10.7 2.5-9.5 2.5-29.2 2.5-29.2s.1-19.8-2.5-29.3z\"\/><path fill=\"#ffffff\" d=\"M80.2 42.5L48.6 24.3v36.4z\"\/><\/g><\/svg><\/div>            <img src=\"https:\/\/img.youtube.com\/vi\/4fZmvsChdBU\/maxresdefault.jpg\" loading=\"lazy\" decoding=\"async\">    <\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"due-tipi-di-hook-azioni-e-filtri\">Due tipi di hook: azioni e filtri<\/h3>\n\n\n\n<p>Ci sono due tipi di hook: azioni e filtri.<\/p>\n\n\n\n<p>Le <strong>azioni <\/strong>(<em>action hook<\/em>), ci permettono di agganciarci a un evento o una funzione specifica per eseguire una funzione da noi inserita.<\/p>\n\n\n\n<p>Potremmo pensarla in questo modo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>quando succede questo (evento)<\/li>\n\n\n\n<li>allora esegui questo (funzione custom).<\/li>\n<\/ul>\n\n\n\n<p>Come vedremo, possiamo anche stabilire l&#8217;ordine in cui le funzioni dovranno essere eseguite.<\/p>\n\n\n\n<p>I <strong>filtri <\/strong>ci permettono di modificare i dati prima che vengano mostrati nel front-end. Con questo tipo di hook in pratica possiamo inserirci in una funzione esistente, modificare i dati e far s\u00ec che siano i <em>dati modificati<\/em> ad essere poi mostrati nella pagina.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"come-sfruttare-gli-hook-su-un-sito-word-press\">Come sfruttare gli hook su un sito WordPress<\/h2>\n\n\n\n<p>Prima di passare all&#8217;azione e vedere degli esempi pratici di hook, \u00e8 importante capire come fare a utilizzarli nella pratica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"come-si-inseriscono-gli-hook\">Come si inseriscono gli hook?<\/h3>\n\n\n\n<p>Abbiamo diversi metodi per inserire i nostri hook su un sito, vediamo quali sono i pi\u00f9 comuni.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Creare un plugin custom<\/strong>: registriamo un nuovo plugin all&#8217;interno del quale andremo a creare la funzione.<\/li>\n\n\n\n<li><strong>Definire una classe<\/strong>: pu\u00f2 essere utile se vogliamo poi riutilizzare la stessa classe in altri progetti.<\/li>\n\n\n\n<li><strong>Usare il file functions.php di un tema child<\/strong>: \u00e8 comodo usare un <a href=\"https:\/\/supporthost.com\/it\/tema-child\/\">tema child<\/a> rispetto al plugin custom quando vogliamo aggiungere una o poche funzioni.<\/li>\n\n\n\n<li><strong>Usare code snippets<\/strong>: si tratta di un plugin che ci permette di aggiungere codice in maniera semplice.<\/li>\n<\/ul>\n\n\n\n<p>Quale metodo usare?<\/p>\n\n\n\n<p>Dipende da te e dalle tue conoscenze. Visto che questo \u00e8 un tutorial introduttivo, se stai imparando ora a creare i tuoi primi hook, potresti iniziare dal metodo pi\u00f9 rapido: usare <a href=\"https:\/\/wordpress.org\/plugins\/code-snippets\/\" rel=\"noopener\">Code Snippets<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"322\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/10\/installare-plugin-code-snippets.png\" alt=\"Installare Plugin Code Snippets\" class=\"wp-image-32575\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/10\/installare-plugin-code-snippets.png 833w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/10\/installare-plugin-code-snippets-300x116.png 300w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/10\/installare-plugin-code-snippets-768x297.png 768w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2022\/10\/installare-plugin-code-snippets-120x46.png 120w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n\n\n\n<p>Con Code Snippets potrai creare le tue funzioni e tenerle separate una dall&#8217;altra, ti sar\u00e0 possibile attivarle o disattivarle al bisogno. Inoltre c&#8217;\u00e8 anche il vantaggio di poterle <strong>esportare <\/strong>e <strong>importare <\/strong>da un sito all&#8217;altro.<\/p>\n\n\n\n<p>Se, invece, vuoi vedere come usare gli altri metodi per aggiungere gli hook, guarda questo tutorial.<\/p>\n\n\n\n<div data-video-id=\"gJ0T6yCGRPE\" style=\"--btn-hover-color:#ff0000;--btn-hover-scale:1;\" class=\"wp-block-supporthost-supporthost-youtube-block\">\n    <div class=\"youtube-video-play youtube-video-play--youtube\" style=\"height:60px;\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 71.412 50\" style=\"height:60px;\"><g transform=\"scale(.58824)\"><path class=\"yt-bg\" fill=\"rgba(0,0,0,0.8)\" d=\"M118.9 13.3c-1.4-5.2-5.5-9.3-10.7-10.7C98.7 0 60.7 0 60.7 0s-38 0-47.5 2.5C8.1 3.9 3.9 8.1 2.5 13.3 0 22.8 0 42.5 0 42.5s0 19.8 2.5 29.2C3.9 76.9 8 81 13.2 82.4 22.8 85 60.7 85 60.7 85s38 0 47.5-2.5c5.2-1.4 9.3-5.5 10.7-10.7 2.5-9.5 2.5-29.2 2.5-29.2s.1-19.8-2.5-29.3z\"\/><path fill=\"#ffffff\" d=\"M80.2 42.5L48.6 24.3v36.4z\"\/><\/g><\/svg><\/div>            <img src=\"https:\/\/img.youtube.com\/vi\/gJ0T6yCGRPE\/maxresdefault.jpg\" loading=\"lazy\" decoding=\"async\">    <\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"da-dove-si-parte-per-creare-un-hook\">Da dove si parte per creare un hook?<\/h3>\n\n\n\n<p>In questo articolo vedremo alcuni esempi pratici per aiutarti a capire il funzionamento di base degli hook.<\/p>\n\n\n\n<p>Per le prime volte, per\u00f2, potrebbe non essere subito intuitivo il metodo da usare per crearli. Ti consigliamo perci\u00f2 di sfruttare <a href=\"https:\/\/generatewp.com\/hooks\/\" rel=\"noopener\">questo generatore<\/a>.<\/p>\n\n\n\n<p>Tramite questo tool sar\u00e0 pi\u00f9 facile scrivere le funzioni e comprendere meglio come vanno strutturate.<\/p>\n\n\n\n<p>Invece, per trovare filtri e hook in uso a cui agganciarti puoi usare un plugin come <a href=\"https:\/\/wordpress.org\/plugins\/wp-hooks-finder\/\" rel=\"noopener\">WP Hooks Finder<\/a>. <\/p>\n\n\n\n<p>Una volta installato e attivato il plugin, ti baster\u00e0 visitare una pagina o un articolo (o anche il back-end, come in questo esempio) e <strong>vedrai gli hook presenti<\/strong>, suddivisi in filtri e azioni. Potrai scegliere se visualizzare solo le azioni (<em>action<\/em>) o i filtri (<em>filter<\/em>) con le opzioni:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>show action hooks<\/li>\n\n\n\n<li>show filter hooks<\/li>\n\n\n\n<li>show all actions and filter hooks (per vedere entrambi). <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"475\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook-1024x475.png\" alt=\"Plugin Wp Hooks Finder Per Trovare Hook\" class=\"wp-image-84722\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook-1024x475.png 1024w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook-300x139.png 300w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook-768x356.png 768w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook-120x56.png 120w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook-1536x712.png 1536w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/plugin-wp-hooks-finder-per-trovare-hook.png 1899w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dopo aver individuato gli hook che vogliamo usare, il metodo migliore per capire come funzionano \u00e8 consultare la documentazione di WordPress. A <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/\" rel=\"noopener\">queste coordinate<\/a> trovi la lista di hooks all&#8217;interno della quale puoi ricercare l&#8217;hook su cui vuoi avere informazioni.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"376\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress-1024x376.png\" alt=\"Lista Hooks Documentazione WordPress\" class=\"wp-image-84724\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress-1024x376.png 1024w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress-300x110.png 300w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress-768x282.png 768w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress-120x44.png 120w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress-1536x563.png 1536w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-hooks-documentazione-wordpress.png 1846w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"come-funzionano-le-azioni\">Come funzionano le azioni<\/h2>\n\n\n\n<p>Per <em>agganciarci<\/em> a un&#8217;azione, ci serve:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>scegliere l&#8217;azione a cui agganciarci;<\/li>\n\n\n\n<li>creare una funzione di callback, sar\u00e0 la nostra funzione <em>custom <\/em>all&#8217;interno della quale inseriremo il codice da eseguire;<\/li>\n\n\n\n<li>collegare la funzione di callback all&#8217;azione, tramite <em>add_action<\/em>;<\/li>\n\n\n\n<li>passare alla funzione <em>add_action<\/em> eventuali argomenti (opzionale) e impostare una priorit\u00e0.<\/li>\n<\/ul>\n\n\n\n<p>Vediamo la struttura di base:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_action ( 'nome_azione', 'funzione_callback', &#91;priorit\u00e0], &#91;argomenti] );\n\nfunction funzione_callback (){\n\n\/\/ contenuto della funzione \n}<\/code><\/pre>\n\n\n\n<p>In un esempio pratico, diventerebbe:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_action ( 'wp_head', 'wp_head_callback', 10 );\n\nfunction wp_head_callback (){\n\n   echo 'Hello Dolly';\n\n}<\/code><\/pre>\n\n\n\n<p>In questo esempio, analizziamo riga per riga cosa succede.<\/p>\n\n\n\n<p>Prima riga:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nella prima riga con la funzione add_action ci stiamo agganciando all&#8217;azione <em>wp_head<\/em> con la funzione &#8220;wp_head_callback&#8221;<\/li>\n\n\n\n<li>Il numero 10 indica la <strong>priorit\u00e0 <\/strong>(le funzioni con valore di priorit\u00e0 pi\u00f9 basso, hanno priorit\u00e0 pi\u00f9 alta). La priorit\u00e0 ha senso quando c&#8217;\u00e8 pi\u00f9 di una funzione.<\/li>\n\n\n\n<li>In questo caso non stiamo passando nessun argomento alla funzione.<\/li>\n<\/ul>\n\n\n\n<p>Seconda riga:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>stiamo definendo la funzione di callback e il suo contenuto;<\/li>\n\n\n\n<li>in questo caso il contenuto della funzione <code>(echo 'Hello Dolly';)<\/code> stampa a schermo questo messaggio.<\/li>\n<\/ul>\n\n\n\n<p><strong>Spiegazione completa dell&#8217;esempio<\/strong>:<\/p>\n\n\n\n<p>Nell&#8217;esempio ci stiamo collegando alla funzione <em>wp_head<\/em> che stampa script o dati nel tag head nel front-end. Questo significa che possiamo usare questa azione per inserire un codice o un testo nel tag head della pagina.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-come-usare-un-hook-per-aggiungere-un-elemento-nel-menu-di-amministrazione\">Esempio: come usare un hook per aggiungere un elemento nel menu di amministrazione<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-1\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">admin_menu<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Azione<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Fires before the administration menu loads in the admin.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/admin_menu\/\" rel=\"noopener\">Documentazione dell\u2019hook admin_menu<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Come dicevamo, possiamo usare le azioni per collegarci a un evento esistente.<\/p>\n\n\n\n<p>Per esempio, per creare una nuova voce nel menu di amministrazione di WordPress, possiamo sfruttare l&#8217;azione <em>admin_menu<\/em>.<\/p>\n\n\n\n<p>L&#8217;azione admin_menu viene eseguita <strong>prima<\/strong> che il menu di amministrazione venga caricato.<\/p>\n\n\n\n<p>Ecco un esempio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Adding menu\nfunction my_add_menu_items()\n{\n      add_menu_page('SupportHost List Table', 'SupportHost List Table', 'activate_plugins', 'supporthost_list_table', 'supporthost_list_init');\n}\nadd_action('admin_menu', 'my_add_menu_items');<\/code><\/pre>\n\n\n\n<p>In questo caso ci stiamo legando all&#8217;azione <em>admin_menu<\/em> per eseguire la funzione custom &#8220;my_add_menu_items&#8221;.<\/p>\n\n\n\n<p>Nel corpo della funzione stiamo creando gli elementi del menu. Puoi approfondire il funzionamento facendo riferimento alla <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_menu_page\/\" rel=\"noopener\">documentazione<\/a> della funzione add_menu_page.<\/p>\n\n\n\n<p>In generale in questa funzione possiamo definire questi parametri:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> add_menu_page( \n      'Titolo pagina', \n      'Titolo menu', \n      (capacit\u00e0: 'edit_posts','activate_plugins', ecc.)\n      'Slug_menu', \n      'callback_function', \n      'dashicons-media-spreadsheet'\n       );<\/code><\/pre>\n\n\n\n<p>Nel nostro esempio avremo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8216;SupportHost List Table&#8217; &gt; titolo pagina;<\/li>\n\n\n\n<li>&#8216;SupportHost List Table&#8217; &gt; titolo mostrato nel menu<\/li>\n\n\n\n<li>&#8216;activate_plugins&#8217; &gt; capacit\u00e0 del ruolo utente richiesta per vedere questa voce di menu;<\/li>\n\n\n\n<li>&#8216;supporthost_list_table&#8217; &gt; slug del menu;<\/li>\n\n\n\n<li>&#8216;supporthost_list_init&#8217; &gt; funzione di callback.<\/li>\n<\/ul>\n\n\n\n<p>Per vedere l&#8217;esempio con il codice completo, leggi il tutorial su <a href=\"https:\/\/supporthost.com\/it\/wp-list-table-tutorial\/\" data-type=\"post\" data-id=\"27951\">WP List Table<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-usare-un-hook-per-registrare-uno-shortcode-o-un-blocco-gutenberg-personalizzato\">Esempio: usare un hook per registrare uno shortcode o un blocco Gutenberg personalizzato<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-2\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">init<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Azione<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Fires after WordPress has finished loading but before any headers are sent.<br><\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/init\/\" rel=\"noopener\">Documentazione dell\u2019hook init<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Quando creiamo uno shortcode per WordPress, possiamo utilizzare diversi metodi. Uno dei sistemi consiste nell&#8217;utilizzare un plugin custom per inserire al suo interno il codice del nostro shortcode personalizzato.<\/p>\n\n\n\n<p>Quando scegliamo questa strada, \u00e8 consigliabile registrare lo shortcode dopo il caricamento di WordPress, per questo motivo si utilizza l&#8217;hook (di tipo azione) <em>init<\/em>.<\/p>\n\n\n\n<p>Ecco un esempio di registrazione di uno shortcode:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function register_shortcode(){\nadd_shortcode ( 'small', 'my_custom_shortcode_small' );\n}\n\nadd_action( 'init', 'register_shortcode' );<\/code><\/pre>\n\n\n\n<p>Come puoi vedere, nell&#8217;ultima riga, ci stiamo agganciando all&#8217;hook init. Per vedere l&#8217;esempio completo e saperne di pi\u00f9, leggi la nostra <a href=\"https:\/\/supporthost.com\/it\/wordpress-shortcode\/\">guida agli shortcode<\/a>.<\/p>\n\n\n\n<p>Lo stesso hook pu\u00f2 essere utilizzato per agganciarci quando vogliamo registrare un <a href=\"https:\/\/supporthost.com\/it\/blocchi-gutenberg\/\">blocco Gutenberg personalizzato<\/a>, come in questo esempio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function supporthost_block_01_register_block() {\n    register_block_type( __DIR__ );\n}\n\nadd_action( 'init', 'supporthost_block_01_register_block' );<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-usare-un-hook-per-mettere-word-press-in-manutenzione\">Esempio: usare un hook per mettere WordPress in manutenzione<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-3\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">get_header<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Azione<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Fires before the header template file is loaded.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/get_header\/\" rel=\"noopener\">Documentazione dell\u2019hook get_header<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Per attivare la modalit\u00e0 di manutenzione di WordPress si pu\u00f2 sfruttare l&#8217;hook <em>get_header<\/em>. Questo hook viene eseguito prima che venga caricato il template dell&#8217;<em>header<\/em>.<\/p>\n\n\n\n<p>Ecco il codice:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function wp_maintenance_mode() {\nif (!current_user_can('edit_themes') || !is_user_logged_in()) {\nwp_die('&lt;h1 style=\"color:#7e4ef8\"&gt;Manutenzione in corso sul sito!&lt;\/h1&gt;&lt;br \/&gt;Torna a trovarci presto.');\n}\n}\nadd_action('get_header', 'wp_maintenance_mode');<\/code><\/pre>\n\n\n\n<p>Puoi personalizzare il contenuto della funzione <em>wp_maintenance_mode<\/em> dell&#8217;esempio qui sopra per <strong>modificare il messaggio da mostrare<\/strong>. Puoi vedere come fare nel dettaglio leggendo la nostra guida sulla <a href=\"https:\/\/supporthost.com\/it\/manutenzione-wordpress\/\">modalit\u00e0 di manutenzione di WordPress<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"come-funzionano-i-filtri\">Come funzionano i filtri<\/h2>\n\n\n\n<p>Il <strong>filtri <\/strong>vanno a modificare dei dati esistenti per eseguire, appunto delle modifiche.<\/p>\n\n\n\n<p>A differenza delle azioni che non <em>restituiscono<\/em> niente, i filtri richiedono un <em>return<\/em> delle modifiche.<\/p>\n\n\n\n<p>La struttura di un filtro \u00e8 questa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter ( 'filtro', 'callback_filtro');\n \nfunction callback_filtro(){\n\n\t\/\/ codice per fare la modifica\n\treturn $contenuto-con-applicato-il-filtro; \n\n}<\/code><\/pre>\n\n\n\n<p>Nella funzione di callback, quindi, andiamo a definire la modifica da fare e poi a usare un return per riottenere il risultato <em>filtrato<\/em>.<\/p>\n\n\n\n<p>Vediamo un esempio di base.<\/p>\n\n\n\n<p>In questo caso vogliamo aggiungere nelle pagine e nei post un testo. Per farlo utilizziamo il filtro &#8220;the_content&#8221;.<\/p>\n\n\n\n<p>Il filtro <em>the_content<\/em> ci permette di filtrare il contenuto del <strong>post corrente<\/strong> (su WordPress, pagine, articoli e <a href=\"https:\/\/supporthost.com\/it\/custom-post-type\/\">custom post type<\/a> sono tutti dei <em>post type<\/em>).<\/p>\n\n\n\n<p>In questo esempio vogliamo inserire un testo (<em>Benvenuto nella pagina<\/em>) che venga mostrato prima del contenuto della pagina.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter ( 'the_content', 'callback_the_content');\n\nfunction callback_the_content($content){\n\t$custom_content = 'Benvenuto nella pagina';\n \t$custom_content .= $content;\n    return $custom_content;\n\n}<\/code><\/pre>\n\n\n\n<p>Per un esempio pi\u00f9 avanzato, puoi vedere come aggiungere un <a href=\"https:\/\/supporthost.com\/it\/attributo-rel\/\">attributo rel<\/a> a tutti i link di WordPress. Per farlo abbiamo usato i filtri <em>the_content<\/em> e <em>the_excerpt<\/em> per andare a modificare sia i <a href=\"https:\/\/supporthost.com\/it\/link-interni\/\">link interni<\/a> (in pagine e post) che quelli nei riassunti (excerpt) di WordPress.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-come-modificare-il-testo-nel-footer-area-amministrazione\">Esempio: come modificare il testo nel footer (area amministrazione)<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-4\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">admin_footer_text<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filtro<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filters the \u201cThank you\u201d text displayed in the admin footer.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/admin_footer_text\/\" rel=\"noopener\">Documentazione dell\u2019hook admin_footer_text<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Usando il filtro <em>admin_footer_text<\/em> possiamo modificare il testo che viene mostrato nel footer dell&#8217;area di amministrazione di WordPress.<\/p>\n\n\n\n<p>Di default, nella versione italiana di WordPress, viene mostrato questo testo nel footer:<\/p>\n\n\n\n<p>&#8220;<em>Grazie per aver creato con WordPress.<\/em>&#8220;<\/p>\n\n\n\n<p>Possiamo modificare il testo, agganciandoci al filtro <em>admin_footer_text<\/em> e <strong>andando a modificare il testo<\/strong> che verr\u00e0 mostrato.<\/p>\n\n\n\n<p>Ecco il codice che puoi usare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function supporthost_custom_footer() {\n    return 'Testo da mostrare';\n}\nadd_filter( 'admin_footer_text', 'supporthost_custom_footer' );<\/code><\/pre>\n\n\n\n<p>In questo esempio:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>abbiamo chiamato la funzione di callback &#8220;supporthost_custom_footer&#8221;;<\/li>\n\n\n\n<li>nella funzione inseriamo il testo che vogliamo mostrare;<\/li>\n\n\n\n<li>il filtro a cui ci agganciamo \u00e8 &#8220;admin_footer_text&#8221;.<\/li>\n<\/ul>\n\n\n\n<p>Ecco cosa possiamo ottenere come risultato:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"488\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress-1024x488.png\" alt=\"Footer Custom Area Admin Filtri WordPress\" class=\"wp-image-84716\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress-1024x488.png 1024w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress-300x143.png 300w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress-768x366.png 768w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress-120x57.png 120w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress-1536x733.png 1536w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/footer-custom-area-admin-filtri-wordpress.png 1908w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"note\">Suggerimento: usando i filtri, possiamo anche modificare le informazioni visibili nella lista degli articoli. Ad esempio possiamo aggiungere le immagini in evidenza in modo che compaiano nella lista di tutti gli articoli, abbiamo visto come fare nella guida su come risolvere i <a href=\"https:\/\/supporthost.com\/it\/immagine-in-evidenza-wordpress-non-visualizzata\/\">problemi di visualizzazione dell&#8217;immagine in evidenza<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-rendere-maiuscole-le-iniziali-dei-titoli\">Esempio: rendere maiuscole le iniziali dei titoli<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-5\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">the_title<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filtro<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filters the post title.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/the_title\/\" rel=\"noopener\">Documentazione dell\u2019hook the_title<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Possiamo usare il filtro <em>the_title<\/em> per modificare i titoli di post (e pagine) prima che vengano mostrati.<\/p>\n\n\n\n<p>Il filtro <em>the_title<\/em> viene, infatti, applicato al <strong>titolo del post<\/strong> (che viene prelevato dal database) prima che questo venga mostrato sullo schermo.<\/p>\n\n\n\n<p>Per farlo possiamo usare la funzione php <a href=\"https:\/\/www.php.net\/manual\/it\/function.ucwords.php\" rel=\"noopener\">ucwords<\/a> che trasforma le iniziali delle parole in maiuscolo.<\/p>\n\n\n\n<p>Ecco il codice:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter( 'the_title', 'titoli_iniziale_maiuscola' );\n\nfunction titoli_iniziale_maiuscola ( $title ) {\n\treturn ucwords( $title );\n}<\/code><\/pre>\n\n\n\n<p>In questo modo, prima di essere mostrati i titoli verranno modificati in modo che l&#8217;iniziale di ogni parola sia mostrata in maiuscolo. Qui un esempio del risultato che otteniamo usando questa funzione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"356\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress-1024x356.png\" alt=\"Esempio Filtro The Title Hook WordPress\" class=\"wp-image-84717\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress-1024x356.png 1024w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress-300x104.png 300w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress-768x267.png 768w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress-120x42.png 120w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress-1536x534.png 1536w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/esempio-filtro-the-title-hook-wordpress.png 1883w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-modificare-la-lista-delle-azioni-sui-post\">Esempio: modificare la lista delle azioni sui post<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-6\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">post_row_actions<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filtro<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filters the post title.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/post_row_actions\/\" data-type=\"link\" data-id=\"https:\/\/developer.wordpress.org\/reference\/hooks\/post_row_actions\/\" rel=\"noopener\">Documentazione dell\u2019hook post_row_actions<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Il filtro <em>post_row_actions<\/em> ci permette di modificare la lista di azioni che vengono mostrate per i post. Di default, se apri la lista dei post vedrai per ognuno una serie di azioni come quelle che ti mostro in questa schermata:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"727\" height=\"116\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-azioni-post-default.png\" alt=\"Lista Azioni Post Default\" class=\"wp-image-84718\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-azioni-post-default.png 727w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-azioni-post-default-300x48.png 300w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/lista-azioni-post-default-120x19.png 120w\" sizes=\"auto, (max-width: 727px) 100vw, 727px\" \/><\/figure>\n\n\n\n<p class=\"note\">Nota che le azioni disponibili cambiano sia in base all&#8217;articolo, se pubblicato o in bozza, sia in base ad eventuali plugin.<\/p>\n\n\n\n<p>Possiamo agganciarci al filtro post_row_actions per aggiungere delle <strong>funzioni personalizzate<\/strong>. Per esempio nella guida su come <a href=\"https:\/\/supporthost.com\/it\/duplicare-pagina-post-wordpress\/\">duplicare pagine e post di WordPress<\/a> abbiamo visto come fare a creare una funzione di duplicazione. Poi, abbiamo utilizzato il filtro <em>post_row_actions<\/em> per mostrare un nuovo link tra la lista delle azioni, &#8220;<em>Duplicate<\/em>&#8220;, in modo che cliccando su quel link, l&#8217;articolo (o la pagina) potesse essere copiato.<\/p>\n\n\n\n<p>Ecco il codice in cui abbiamo usato il filtro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function rd_duplicate_post_link( $actions, $post ) {\n  if (current_user_can('edit_posts')) {\n    $actions&#91;'duplicate'] = '&lt;a href=\"' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&amp;post=' . $post-&gt;ID, basename(__FILE__), 'duplicate_nonce' ) . '\" title=\"Duplicate this item\" rel=\"permalink\"&gt;Duplicate&lt;\/a&gt;';\n  }\n  return $actions;\n}\n \nadd_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );<\/code><\/pre>\n\n\n\n<p>Per la funzione completa, ti invito a leggere la guida linkata qui sopra.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-permettere-il-caricamento-di-altri-formati-di-file\">Esempio: permettere il caricamento di altri formati di file<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-7\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">upload_mimes<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filtro<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filters the post title.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/upload_mimes\/\" data-type=\"link\" data-id=\"https:\/\/developer.wordpress.org\/reference\/hooks\/upload_mimes\/\" rel=\"noopener\">Documentazione dell\u2019hook upload_mimes<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Possiamo utilizzare il filtro upload_mimes per consentire agli utenti di caricare su WordPress file in altri formati oltre a quelli consentiti.<\/p>\n\n\n\n<p>Se carichiamo un file che non \u00e8 nella lista di quelli <strong>accettati da WordPress<\/strong>, vedremo un errore &#8220;<a href=\"https:\/\/supporthost.com\/it\/non-hai-i-permessi-per-caricare-questo-tipo-di-file\/\">Non hai i permessi per caricare questo tipo di file<\/a>&#8220;.<\/p>\n\n\n\n<p>Uno dei sistemi per aggiungere nuovi file a quelli consentiti, \u00e8 usare proprio il filtro upload_mimes.<\/p>\n\n\n\n<p>Ecco un esempio in cui usiamo il filtro per permettere il caricamento dei file con estensione <em>avif<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function my_custom_mime_types( $mimes ) {\n\n\/\/ Nuovi file consentiti.\n$mimes&#91;'avif'] = 'image\/avif';\nreturn $mimes;\n}\n\nadd_filter( 'upload_mimes', 'my_custom_mime_types' );<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"esempio-modificare-il-messaggio-di-errore-nel-login-di-word-press\">Esempio: modificare il messaggio di errore nel login di WordPress<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-8\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">login_errors<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filtro<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filters the error messages displayed above the login form.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/login_errors\/\" data-type=\"link\" data-id=\"https:\/\/developer.wordpress.org\/reference\/hooks\/upload_mimes\/\" rel=\"noopener\">Documentazione dell\u2019hook login_errors<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Di norma, quando proviamo a effettuare il <a href=\"https:\/\/supporthost.com\/it\/login-wordpress\/\" data-type=\"post\" data-id=\"64170\">login su WordPress<\/a> e non riusciamo ad accedere, ci vengono date delle indicazioni che ci permettono di capire se stiamo sbagliando il nome utente o la password.<\/p>\n\n\n\n<p>Guarda per esempio questo caso qui sotto: ci viene indicato che il nome utente non \u00e8 registrato sul sito.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"804\" src=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/errore-login-wordpress-suggerimento-nome-utente-non-registrato.png\" alt=\"Errore Login WordPress Suggerimento Nome Utente Non Registrato\" class=\"wp-image-84719\" srcset=\"https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/errore-login-wordpress-suggerimento-nome-utente-non-registrato.png 512w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/errore-login-wordpress-suggerimento-nome-utente-non-registrato-191x300.png 191w, https:\/\/supporthost.com\/it\/wp-content\/uploads\/sites\/2\/2025\/04\/errore-login-wordpress-suggerimento-nome-utente-non-registrato-40x63.png 40w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>Per <a href=\"https:\/\/supporthost.com\/it\/sicurezza-wordpress\/\">migliorare la sicurezza di WordPress<\/a> potremmo voler disattivare questo tipo di avviso e mostrare, invece, un messaggio generico.<\/p>\n\n\n\n<p>Per farlo possiamo sfruttare il filtro login_errors per modificare il messaggio di errore che compare sopra al login.<\/p>\n\n\n\n<p>Ecco un esempio di codice che possiamo usare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function hide_wordpress_login_errors(){\n  return 'Gli errori di login sono stati nascosti per ragioni di sicurezza';\n}\n\nadd_filter( 'login_errors', hide_wordpress_login_errors );<\/code><\/pre>\n\n\n\n<p>In questo modo, invece di mostrare l&#8217;errore di default, verr\u00e0 mostrato il testo indicato nel <em>return<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"usare-azioni-e-filtri-inserire-un-pulsante-whats-app-su-un-sito-word-press\">Usare azioni e filtri: inserire un pulsante WhatsApp su un sito WordPress<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table data-mtr-unique-id=\"427b2b669b33010609982df20adaf0e8-9\" class=\"has-fixed-layout mtr-table mtr-thead-th\"><thead><tr><th data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Hook usato in questo esempio <\/div><\/th><th data-mtr-content=\"Tipo di hook\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Tipo di hook<\/div><\/th><th data-mtr-content=\"Descrizione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Descrizione<\/div><\/th><th data-mtr-content=\"Link alla documentazione\" class=\"mtr-th-tag\"><div class=\"mtr-cell-content\">Link alla documentazione<\/div><\/th><\/tr><\/thead><tbody><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">the_content<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filtro<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Filters the post content.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/the_content\/\" data-type=\"link\" data-id=\"https:\/\/developer.wordpress.org\/reference\/hooks\/upload_mimes\/\" rel=\"noopener\">Documentazione dell\u2019hook the_content<\/a><\/div><\/td><\/tr><tr><td data-mtr-content=\"Hook usato in questo esempio \" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">wp_footer<\/div><\/td><td data-mtr-content=\"Tipo di hook\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Azione<\/div><\/td><td data-mtr-content=\"Descrizione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\">Prints scripts or data before the closing body tag on the front end.<\/div><\/td><td data-mtr-content=\"Link alla documentazione\" class=\"mtr-td-tag\"><div class=\"mtr-cell-content\"><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/wp_footer\/\" data-type=\"link\" data-id=\"https:\/\/developer.wordpress.org\/reference\/hooks\/upload_mimes\/\" rel=\"noopener\">Documentazione dell\u2019hook wp_footer<\/a><\/div><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Nell&#8217;esempio che andremo a vedere, aggiungeremo un pulsante WhatsApp che permetta a chi visita il sito di avviare un chat. Per farlo useremo <strong>sia filtri che azioni<\/strong>.<\/p>\n\n\n\n<p>Ecco il codice che possiamo usare:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter( 'the_content', 'add_whatsapp_button_sh', 1 );\n \nfunction add_whatsapp_button_sh ( $content ) {\n \n    \/\/ Check if we're inside the main loop in a single Post.\n    if ( is_singular('post', 'page') ) {\n\t\t$whatsapp_html = '&lt;a href=\"https:\/\/wa.me\/123?text=esempio%20di%20testo\" class=\"whfloat\"&gt;\n&lt;i class=\"fa fa-whatsapp whstyle\"&gt;&lt;\/i&gt;\n&lt;\/a&gt;';\n        return $whatsapp_html.$content;\n    }\n \n    return $content;\n}\nadd_action('wp_footer', 'add_css_whatsapp_buttons_sh');\nfunction add_css_whatsapp_buttons_sh(){\n\techo '&lt;style&gt; .whfloat{\n\t\tposition:fixed;\n\t\twidth:60px;\n\t\theight:60px;\n\t\tbottom:20px;\n\t\tright:20px;\n\t\tbackground-color:#25d366;\n\t\tcolor:#FFF;\n\t\tborder-radius:50px;\n\t\ttext-align:center;\n\t\tbox-shadow: 2px 2px 3px #999;\n\t}\n\t.whstyle {\n\t\tfont-size: 2rem;\n    \tmargin-top: 13px;\n\t\t}&lt;\/style&gt;';\n}<\/code><\/pre>\n\n\n\n<p>In questo caso:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ci siamo agganciati al filtro <em>the_content<\/em> per modificare il contenuto delle pagine e aggiungere il link;<\/li>\n\n\n\n<li>nella seconda parte del codice viene usata l&#8217;hook di azione <em>wp_footer<\/em>. Questo hook serve a stampare contenuto prima della chiusura del tag <em>body<\/em> nel front-end. In questo caso \u00e8 stato usato per dare lo stile al pulsante.<\/li>\n<\/ul>\n\n\n\n<p>Se ti interessa, puoi vedere come personalizzare il codice qui sopra leggendo la nostra guida su come <a href=\"https:\/\/supporthost.com\/it\/whatsapp-wordpress\/\">inserire un pulsante WhatsApp su WordPress<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"come-creare-degli-hook-custom\">Come creare degli hook custom<\/h2>\n\n\n\n<p>Finora abbiamo visto come fare a utilizzare gli hook (azioni e filtri) gi\u00e0 esistenti per inserire il nostro codice o fare delle modifiche.<\/p>\n\n\n\n<p>Oltre a questo, possiamo anche <strong>creare i nostri hook<\/strong> per inserirli all&#8217;interno dei nostri temi o plugin. In questo modo possiamo dare la possibilit\u00e0 ad altri sviluppatori di utilizzare gli hook dei nostri plugin.<\/p>\n\n\n\n<p>Vediamo da dove iniziare.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"best-practice-per-la-creazione-degli-hook-custom\">Best practice per la creazione degli hook custom<\/h3>\n\n\n\n<p>Se vogliamo creare degli hook per i nostri plugin (<em>o temi<\/em>), \u00e8 bene seguire delle regole (che potremmo definire di buon senso).<\/p>\n\n\n\n<p>Come avrai capito leggendo fin qui, oltre al core di WordPress, anche <a href=\"https:\/\/supporthost.com\/it\/plugin-wordpress\/\" data-type=\"post\" data-id=\"16110\">plugin<\/a> e <a href=\"https:\/\/supporthost.com\/it\/temi-wordpress\/\" data-type=\"post\" data-id=\"14979\">temi<\/a> utilizzano i loro hook. Come fare quindi a evitare conflitti? Usando il buon senso quando andiamo a creare i nostri hook personalizzati.<\/p>\n\n\n\n<p>Questo riguarda in particolare il <strong>nome <\/strong>da utilizzare per gli hook. \u00c8 bene usare un nome che sia <strong>univoco<\/strong> in modo che non ci siano interferenze con gli hook di altri plugin.<\/p>\n\n\n\n<p>Un esempio pratico?<\/p>\n\n\n\n<p>Se il mio plugin si chiama: &#8220;best SEO plugin ever (bspe)&#8221; (<em>inventato sul momento<\/em>), allora potr\u00f2 usare come prefisso per i filtri e per le azioni l&#8217;abbreviativo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bspe<\/code><\/pre>\n\n\n\n<p>In questo modo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bspe_custom_action\nbspe_custom_filter<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"creare-azioni-custom\">Creare azioni custom<\/h3>\n\n\n\n<p>Per creare un&#8217;azione custom da aggiungere al nostro plugin, possiamo usare <em>do_action()<\/em>.<\/p>\n\n\n\n<p>Usando questa funzione e specificando il nome dell&#8217;hook, andiamo a creare un nuovo hook.<\/p>\n\n\n\n<p>Per esempio andiamo a creare un hook chiamato &#8220;shtutorial_action&#8221;.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>do_action( 'shtutorial_action' );<\/code><\/pre>\n\n\n\n<p>Nota che la funzione <em>do_action()<\/em> andr\u00e0 inserita nel punto del codice dove vogliamo che venga eseguita.<\/p>\n\n\n\n<p>A questo punto posso usare l&#8217;hook appena creato (shtutorial_action) per agganciarmi con una funzione di callback (nell&#8217;esempio indicata come example_callback), in questo modo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_action ( 'shtutorial_action', 'example_callback', 10 );\n\nfunction example_callback (){\n\n\t\/\/codice della funzione da agganciare all'hook\n\t\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"creare-filtri-custom\">Creare filtri custom<\/h3>\n\n\n\n<p>Possiamo usare un procedimento molto simile a quello che abbiamo appena visto per <strong>creare dei filtri custom<\/strong> da inserire nei nostri plugin.<\/p>\n\n\n\n<p>Per i filtri, la funzione da usare \u00e8 <code>apply_filters()<\/code>.<\/p>\n\n\n\n<p>In questo caso, ricordiamoci che i filtri hanno bisogno di un <em>argomento<\/em> che \u00e8 il valore che deve essere filtrato (negli esempi precedenti abbiamo visto che pu\u00f2 essere <em>the_content<\/em>, <em>the_title<\/em>, ecc.).<\/p>\n\n\n\n<p>In questo esempio andiamo a creare un filtro chiamato &#8220;shtutorial_filter&#8221; e indichiamo con $value il valore da filtrare.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apply_filters( 'shtutorial_filter', $value );<\/code><\/pre>\n\n\n\n<p>Una volta creato il filtro, per agganciarmi ad esso potr\u00f2 usare la funzione <em>add_filter<\/em> come abbiamo visto negli esempi di prima.<\/p>\n\n\n\n<p>Dovremo indicare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Il nome del filtro a cui agganciarci. Nell&#8217;esempio \u00e8 quello appena creato, <code>shtutorial_filter<\/code>.<\/li>\n\n\n\n<li>Il nome della funzione di callback. Nell&#8217;esempio la indicheremo come <code>example_callback<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>Il nostro codice, quindi, sar\u00e0 come questo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter ( 'shtutorial_filter', 'example_callback');\n \nfunction example_callback($value){\n\n\t\/\/ codice per fare la modifica\n\t\n\treturn $value; \n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusioni\">Conclusioni<\/h2>\n\n\n\n<p>Gli hook non sono altro che <em>pezzetti<\/em> di codice che ci permettono di mostrare dati in maniera differente o aggiungere nuove funzioni. Essenzialmente quello che ci permettono di fare \u00e8 <em>agganciarci <\/em>a delle funzioni esistenti in WordPress per <strong>modificare i dati<\/strong> oppure per <strong>creare delle funzioni <\/strong>completamente nuove. <\/p>\n\n\n\n<p>Con i diversi esempi che abbiamo visto, ti abbiamo mostrato la differenza tra azioni e filtri e come sfruttare nella pratica i diversi tipi di hook. Avevi mai sentito parlare degli hook? Faccelo sapere lasciando un commento.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gli hook di WordPress ci permettono di personalizzare il funzionamento del sito, aggiungere nuove funzioni o modificare il comportamento di quelle esistenti. Possiamo utilizzare gli hook (azioni e filtri) esistenti per creare delle funzioni custom e farle eseguire al momento giusto. Inoltre, se siamo sviluppatori di temi e plugin, possiamo creare i nostri hook per [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":85548,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[33],"tags":[],"class_list":["post-84714","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"acf":[],"_links":{"self":[{"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/posts\/84714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/comments?post=84714"}],"version-history":[{"count":13,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/posts\/84714\/revisions"}],"predecessor-version":[{"id":143879,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/posts\/84714\/revisions\/143879"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/media\/85548"}],"wp:attachment":[{"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/media?parent=84714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/categories?post=84714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/supporthost.com\/it\/wp-json\/wp\/v2\/tags?post=84714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}