{"id":230913,"date":"2022-12-04T17:10:00","date_gmt":"2022-12-04T14:10:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230913"},"modified":"2022-12-04T17:10:49","modified_gmt":"2022-12-04T14:10:49","slug":"lettura-e-comprensione-dei-log-degli-errori-di-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/lettura-e-comprensione-dei-log-degli-errori-di-wordpress-parte-1\/","title":{"rendered":"Lettura e comprensione dei log degli errori di WordPress, parte 1"},"content":{"rendered":"\n<p>Mentre continuiamo a guardare cosa significa essere <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">uno sviluppatore WordPress indipendente<\/a><\/strong>, gli strumenti necessari e le varie strategie che possono migliorare il nostro set di competenze, ho parlato delle varie costanti, plug-in e strumenti per aiutarci.<\/p>\n<p>Se ti sei appena imbattuto in questo post, ti consiglio di consultare la <strong><a href=\"https:\/\/wordpress.mediadoma.com\/it\/strumenti-di-debug-nativi-di-wordpress-che-non-richiedono-un-ide\/\" title=\"mia guida agli strumenti di debug nativi di WordPress\">mia guida agli strumenti di debug nativi di WordPress<\/a><\/strong> e il resto dei post della serie <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">finora.<\/a><\/strong><\/p>\n<p>Dopotutto, trovo importante che stiamo tutti lavorando sulla stessa base \u2013 o qualcosa di strettamente correlato \u2013 quando esaminiamo queste informazioni.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e7490c88078.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-163025-61e7490c88078.png\" alt=\"Lettura e comprensione dei log degli errori di WordPress, parte 1\"><\/a><\/p>\n<p>In definitiva, utilizzare uno strumento come <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong> \u00e8 indispensabile, ma dobbiamo lavorare fino a questo (per i curiosi, <strong><a href=\"https:\/\/wordpress.mediadoma.com\/it\/utilizzo-di-xdebug-con-valet-e-wordpress\/\" title=\"ho scritto una breve guida\">ho scritto una breve guida<\/a><\/strong> su questo poco pi\u00f9 di un anno fa).<\/p>\n<p>Per ora, per\u00f2, iniziamo con le basi. Nel post precedente, ho lasciato con la seguente dichiarazione:<\/p>\n<blockquote>\n<p>Nel prossimo post, inizieremo a esaminare ci\u00f2 che \u00e8 necessario per esaminare il registro degli errori generato da WordPress e come comprendere le informazioni che vediamo.<\/p>\n<\/blockquote>\n<p>Ed \u00e8 quello che voglio guardare oggi perch\u00e9, se non altro, ti dar\u00e0 qualcosa di pratico su cui lavorare.<\/p>\n<h2>Comprensione dei log degli errori di WordPress, parte 1<\/h2>\n<p>Prima di entrare troppo in questo, voglio affrontare una domanda che \u00e8 stata sollevata da un membro del sito.<\/p>\n<p>Vale a dire, mi \u00e8 stato chiesto:<\/p>\n<blockquote>\n<p>Quando esamineremo i principi orientati agli oggetti?<\/p>\n<\/blockquote>\n<p>Anche se ne ho parlato un po&#8217; <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/oop-fundamentals\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">in una serie precedente<\/a><\/strong>, \u00e8 qualcosa che sto lavorando per approfondire pi\u00f9 avanti in questa serie.<\/p>\n<p>Detto questo, tuttavia, iniziamo a guardare i registri degli errori.<\/p>\n<h3>Configurare le tue costanti<\/h3>\n<p>Se non hai configurato le costanti nel tuo file <strong>wp-config.php<\/strong>, ti consiglio di farlo ora in quanto ci\u00f2 ti dar\u00e0 il massimo livello di granualit\u00e0 durante l&#8217;esame di eventuali problemi che potrebbero sorgere.<\/p>\n<p>Se non hai raggiunto, assicurati di leggere <strong><a href=\"https:\/\/wordpress.mediadoma.com\/it\/strumenti-di-debug-nativi-di-wordpress-che-non-richiedono-un-ide\/\" title=\"questo post\">questo post<\/a><\/strong> (e se lo hai fatto, assicurati che <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-11-wp-config-debug-full-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">le seguenti costanti<\/a><\/strong> siano definite nel tuo file di configurazione):<\/p>\n<pre><code>&lt;?php\ndefine( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', true );\n@ini_set( 'display_errors', 1 );\ndefine( 'SCRIPT_DEBUG', true );\ndefine( 'SAVEQUERIES', true );<\/code><\/pre>\n<p>Una volta che sono a posto, hai tutto ci\u00f2 di cui hai bisogno non solo per vedere le informazioni sullo schermo, ma anche nel registro di debug che WordPress generer\u00e0.<\/p>\n<h3>Dov&#8217;\u00e8 il registro?<\/h3>\n<p>A seconda della natura del tuo ambiente, questo pu\u00f2 variare; tuttavia, nella maggior parte dei casi, troverai <strong>debug.log<\/strong> nella directory <strong>wp-content<\/strong> che si trova sopra le directory <strong>plugin<\/strong>, <strong>temi<\/strong> e <strong>caricamenti<\/strong>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e74910d3457.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-163025-61e74910d3457.png\" alt=\"Lettura e comprensione dei log degli errori di WordPress, parte 1\"><\/a><\/p>\n<p>Come puoi vedere dall&#8217;anteprima dello screenshot sopra, il mio file di debug contiene molti contenuti. Daremo un&#8217;occhiata pi\u00f9 in profondit\u00e0 nella prossima sezione e come capirlo. Nel frattempo, per\u00f2, controlla se questo file esiste. In tal caso, sentiti libero di andare avanti e esaminare il contenuto del file. Potresti capire o meno molto di ci\u00f2 che sta succedendo, ma il contenuto del file significa che qualcosa in un tema o plug-in sta attivando vari <strong><a href=\"https:\/\/secure.php.net\/manual\/en\/function.error-reporting.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">avvisi, avvisi ed errori PHP<\/a><\/strong> che WordPress sta rilevando e scaricando nel file di registro.<\/p>\n<h3>Che cosa significa anche il file di registro?<\/h3>\n<p>Questo non significa necessariamente che qualcosa sia rotto, ma indica che qualcosa non sta funzionando come dovrebbe, non viene catturato e gestito correttamente a livello di programmazione o sta semplicemente facendo qualcosa che non dovrebbe fare.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e749148c865.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-163025-61e749148c865.png\" alt=\"Lettura e comprensione dei log degli errori di WordPress, parte 1\"><\/a><\/p>\n<p>Non deve apparire cos\u00ec (ma pu\u00f2!).<\/p>\n<p>Come sviluppatori, dovremmo sforzarci di assicurarci che il nostro codice non generi nulla che verrebbe scritto nel registro degli errori.<\/p>\n<p>Una cosa \u00e8 farlo in fase di sviluppo in quanto siamo in grado di ottenere informazioni dettagliate su ci\u00f2 che stiamo facendo e sulle prestazioni di WordPress. \u00c8 un&#8217;altra cosa, per\u00f2, per qualcosa che pubblichiamo a livello di produzione per generare cose del genere.<\/p>\n<h3>Lettura del registro degli errori<\/h3>\n<p>Ovviamente, c&#8217;\u00e8 di pi\u00f9 nella lettura del registro degli errori piuttosto che nell&#8217;aprirlo. Per molti, l&#8217;impressione iniziale \u00e8 che possa essere un mucchio di gergo. Lo capisco anche io. Ma quando capisci cosa ti sta mostrando, \u00e8 molto pi\u00f9 facile da capire.<\/p>\n<p>Quindi diamo un&#8217;occhiata a un esempio davvero semplice. Neanche questo \u00e8 un esempio forzato. In effetti, questo \u00e8 uno che proviene da un plug-in su cui stavo lavorando. Il registro degli errori contiene <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/426e02bcfc411d43be6715b3e84ead7e#file-12-error-log-example-1-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">le seguenti informazioni<\/a><\/strong> :<\/p>\n<pre><code>[05-Jul-2018 19:43:53 UTC] PHP Fatal error:  Uncaught Error: Class 'EasyEmailExportAdminEmailExportSubmenu' not found in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php:37\n#8 \/U in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 37\n[05-Jul-2018 19:44:03 UTC] PHP Warning:  include_once(.\/src\/Admin\/EmailExportSubmenu.php): failed to open stream: No such file or directory in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25\n[05-Jul-2018 19:44:03 UTC] PHP Warning:  include_once(): Failed opening '.\/src\/Admin\/EmailExportSubmenu.php' for inclusion (include_path='.:\/usr\/local\/Cellar\/php\/7.2.5\/share\/php\/pear') in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25<\/code><\/pre>\n<p>Si noti che, nel succo di cui sopra, ci sono tre righe. La migliore linea d&#8217;azione durante la lettura dei registri degli errori \u00e8 iniziare dal basso e risalire. Questo perch\u00e9 le cose quando sono in esecuzione in esecuzione, operano su uno stack.<\/p>\n<h4>Una breve digressione sugli stack<\/h4>\n<p>Non entrer\u00f2 nella definizione informatica del termine, ma il codice viene eseguito e funziona in modo tale che le funzioni si verificano e, letteralmente, nella memoria di un computer, si impilano l&#8217;una sull&#8217;altra.<\/p>\n<p>Pertanto, la cosa pi\u00f9 recente da eseguire sar\u00e0 sempre in alto dove la radice di dove inizia \u00e8 in basso. Dato che stiamo scrivendo codice su un&#8217;applicazione preesistente, questo \u00e8 WordPress; allora \u00e8 probabile che il nostro codice sia sempre in cima.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-163025-61e74918219d3.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-163025-61e74918219d3.png\" alt=\"Lettura e comprensione dei log degli errori di WordPress, parte 1\"><\/a><\/p>\n<p>Comprendere i log degli errori di WordPress: non \u00e8 questo tipo di stack<\/p>\n<p>L&#8217;idea \u00e8 che il codice inizier\u00e0 l&#8217;esecuzione in WordPress e si far\u00e0 strada fino al lavoro che stiamo facendo. Quando c&#8217;\u00e8 un avviso, un avviso o un errore, di solito \u00e8 qualcosa nel nostro codice (sebbene WordPress non sia esente, in genere \u00e8 cos\u00ec).<\/p>\n<p>Quindi, quando leggi il registro degli errori, stai, in sostanza, leggendo quella che viene chiamata <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Stack_trace\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">traccia dello stack.<\/a><\/strong> Wikipedia, come collegata, ha una definizione piuttosto approfondita sull&#8217;argomento, ma forse la parte pi\u00f9 rilevante per questo post \u00e8 la seguente:<\/p>\n<blockquote>\n<p>I programmatori usano comunemente la traccia dello stack durante il [debugging] interattivo e post mortem (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Debugging\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/en.wikipedia.org\/wiki\/Debugging<\/a>). Gli utenti finali possono visualizzare una traccia dello stack visualizzata come parte di un <a href=\"https:\/\/en.wikipedia.org\/wiki\/Error_message\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">messaggio di errore<\/a>, che l&#8217;utente pu\u00f2 quindi segnalare a un programmatore.<\/p>\n<\/blockquote>\n<p>Questo si confonde con quello che ho delineato sopra, giusto? Ma basta parlare di cos&#8217;\u00e8 una traccia dello stack (diventer\u00e0 pi\u00f9 chiaro man mano che approfondiamo il debug), torniamo a leggere il file di registro cos\u00ec com&#8217;\u00e8 attualmente.<\/p>\n<h3>Torna a Lettura del registro<\/h3>\n<h4>Compresi i file<\/h4>\n<p>Per prima cosa, diamo un&#8217;occhiata alla linea di fondo nel succo sopra. Contiene quanto segue:<\/p>\n<pre><code>[05-Jul-2018 19:44:03 UTC] PHP Warning: include_once(): Failed opening '.\/src\/Admin\/EmailExportSubmenu.php' for inclusion (include_path='.:\/usr\/local\/Cellar\/php\/7.2.5\/share\/php\/pear') in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25<\/code><\/pre>\n<p>Questo mi sta dicendo che alla riga 25 del mio file, <strong>easy-email-export.php,<\/strong> non \u00e8 riuscito ad aprire un file per l&#8217;inclusione. Ci\u00f2 significa che ho un&#8217;istruzione <strong>include_once<\/strong> nel codice che fa riferimento <strong>a .\/src\/Admin\/EmailExportSubmenu.php<\/strong> che non riesce a trovare.<\/p>\n<p>Quindi la migliore linea d&#8217;azione sarebbe trovare la riga 25 e determinare perch\u00e9 non sta individuando il file. Forse questo sta scaricando l&#8217;intero percorso su dove sta guardando. Ci arriveremo momentaneamente quando parleremo di scrivere nel registro degli errori.<\/p>\n<h4>Dare un senso agli errori<\/h4>\n<p>Nella riga successiva (ovvero la riga sopra quella che abbiamo appena visto) contiene quanto segue:<\/p>\n<pre><code>[05-Jul-2018 19:44:03 UTC] PHP Warning: include_once(.\/src\/Admin\/EmailExportSubmenu.php): failed to open stream: No such file or directory in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 25<\/code><\/pre>\n<p>Questa particolare riga differisce solo leggermente ma fornisce ulteriori informazioni ed \u00e8 contenuta nella clausola che recita &quot;Nessun file o directory del genere&quot;. Questo \u00e8 perspicace perch\u00e9 ci sta letteralmente dicendo che il file non esiste.<\/p>\n<p>Almeno, non esiste dove sta guardando. Quindi le due possibilit\u00e0 sono:<\/p>\n<ol>\n<li>non abbiamo creato il file a cui siamo riferimenti,<\/li>\n<li>stiamo facendo riferimento alla posizione del file nel posto sbagliato<\/li>\n<\/ol>\n<p>Pertanto, la prima cosa che dovremmo controllare \u00e8 se il file esiste nella posizione che stiamo cercando di includere. In caso contrario, dovremmo creare il file.<\/p>\n<p>Se il file esiste, allora sappiamo che il plugin sta cercando di caricarlo dal percorso sbagliato. Quindi potrebbe essere necessario esaminare il nostro <strong><a href=\"https:\/\/wordpress.mediadoma.com\/it\/spazi-dei-nomi-e-caricamento-automatico-in-wordpress\/\" title=\"caricatore automatico\">caricatore automatico<\/a><\/strong>, il nostro percorso di inclusione o comunque i file vengono recuperati. Perch\u00e9, le probabilit\u00e0 sono che se il file esiste, allora sta cercando di essere caricato da un posto in cui non risiede.<\/p>\n<h3>Un errore non rilevato<\/h3>\n<p>Nell&#8217;ultima riga del codice, vedrai qualcosa del genere:<\/p>\n<pre><code>[05-Jul-2018 19:43:53 UTC] PHP Fatal error: Uncaught Error: Class 'EasyEmailExportAdminEmailExportSubmenu' not found in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php:37\n#8 \/U in \/Users\/tommcfarlin\/Dropbox\/Projects\/trunk\/wp-content\/plugins\/easy-email-export\/easy-email-export.php on line 37<\/code><\/pre>\n<p>Questo \u00e8 un buon esempio, in primo luogo, perch\u00e9 dichiara esplicitamente che si tratta di un errore non rilevato. Ci\u00f2 significa che qualunque sia la funzionalit\u00e0, qualcosa sta generando un errore e non viene rilevato.<\/p>\n<ul>\n<li>questa potrebbe essere un&#8217;eccezione,<\/li>\n<li>questo potrebbe essere un problema nel tentativo di chiamare una funzione che non esiste,<\/li>\n<li>questo potrebbe operare su una variabile che non \u00e8 definita,<\/li>\n<li>e cos\u00ec via.<\/li>\n<\/ul>\n<p>In definitiva, c&#8217;\u00e8 una pletora di problemi che potrebbero essere presenti. La buona notizia, in questo esempio, \u00e8 che \u00e8 praticamente la stessa di quanto sopra: un file non \u00e8 stato trovato.<\/p>\n<p>Tranne che, invece di lanciare un avviso, PHP ci indica esplicitamente che si tratta di un errore fatale e il programma non pu\u00f2 continuare l&#8217;esecuzione fino a quando questa riga di codice non viene risolta. Prima di liquidare questo come qualcosa che \u00e8 lo stesso della sezione precedente (perch\u00e9, per cos\u00ec dire, lo \u00e8), dobbiamo riconoscere che questo \u00e8 esplicitamente dichiarato come un errore fatale mentre, nell&#8217;esempio precedente, \u00e8 stato trattato come un avvertimento.<\/p>\n<p>Ci sono diversi modi per concettualizzare questo, ma il modo in cui generalmente lo penso \u00e8 questo:<\/p>\n<ul>\n<li>Un avviso mi dice che qualcosa non va nel codice, ma non \u00e8 abbastanza grave da giustificare l&#8217;interruzione dell&#8217;esecuzione.<\/li>\n<li>Un avviso \u00e8 leggermente pi\u00f9 grave perch\u00e9 significa che qualcosa rischia di non funzionare.<\/li>\n<li>Un errore dice &quot;questo non funziona e il programma non pu\u00f2 procedere&quot;.<\/li>\n<\/ul>\n<p>Ora sappiamo che il problema sta interrompendo lo spettacolo, per cos\u00ec dire, e sappiamo qual \u00e8 il problema. In poche parole, un file necessario per il completamento dell&#8217;esecuzione del programma non viene trovato e quindi il programma smette di funzionare.<\/p>\n<p>Questo \u00e8 certamente un errore fatale.<\/p>\n<h3>Qual \u00e8 la soluzione?<\/h3>\n<p>Ci\u00f2 che fornisco come soluzione al mio problema non sar\u00e0 prescrittivo su ci\u00f2 che funzioner\u00e0 per te. Per me, si trattava di una riga nella mia configurazione di Composer in modo tale che il caricatore automatico di Composer non potesse individuare il file nella posizione corretta (ma questo ha pi\u00f9 a che fare con l&#8217;organizzazione dei file, lo spazio dei nomi e cos\u00ec via).<\/p>\n<p>Per te, potrebbe essere qualcosa di diverso.<\/p>\n<ul>\n<li>forse sta cercando un file nella directory sbagliata,<\/li>\n<li>forse il file ha un nome diverso da quello specificato nel codice,<\/li>\n<li>o forse \u00e8 qualcos&#8217;altro.<\/li>\n<\/ul>\n<p>In ogni caso, il punto \u00e8 che si tratta di procedere attraverso il file di registro dal basso verso l&#8217;alto per diagnosticare il problema e tracciare cosa stanno facendo PHP, WordPress e il tuo lavoro e quindi diagnosticarlo da l\u00ec.<\/p>\n<h2>Scrittura nel registro errori<\/h2>\n<p>Nel prossimo post, ci prenderemo un momento per vedere come possiamo scrivere nel registro degli errori. A volte, leggere il file va bene e semplicemente andare avanti e indietro tra ci\u00f2 che stiamo vedendo e risolvere i problemi \u00e8 bello.<\/p>\n<p>Ma che dire del caso in cui vogliamo scaricare qualcosa per ottenere informazioni su ci\u00f2 che WordPress o PHP stanno vedendo? Anche questo \u00e8 utile.<\/p>\n<p>Quindi, nella prossima parte di questa serie sulla comprensione dei log degli errori di WordPress, faremo esattamente questo.<\/p>\n<h3>Cosa c&#8217;\u00e8 dopo?<\/h3>\n<p>Successivamente, esamineremo come utilizzare alcuni dei plug-in descritti in precedenza per testare il codice e anche per profilare il nostro codice per assicurarci di aver fatto tutto il possibile per assicurarci di produrre un livello di qualit\u00e0.<\/p>\n<p>Questo non significa che abbiamo completamente finito con il processo di debug, ma siamo sicuramente un passo pi\u00f9 vicini e siamo posizionati per scrivere codice con un grado di qualit\u00e0 che non si traduce in un file che rappresenta vari problemi sfumati siamo stati troppo negligenti per sistemare (per non parlare di capire).<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per iniziare a eseguire il debug del codice senza l&#8217;uso di strumenti di terze parti, perch\u00e9 non guardare cosa generano PHP e WordPress e funzionano attraverso la comprensione dei log degli errori di WordPress.<\/p>\n","protected":false},"author":1,"featured_media":163026,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,720,844,865],"tags":[1168],"class_list":["post-230913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230913","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=230913"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230913\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/163026"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}