{"id":230351,"date":"2022-11-19T12:27:00","date_gmt":"2022-11-19T09:27:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230351"},"modified":"2022-11-09T21:55:12","modified_gmt":"2022-11-09T18:55:12","slug":"suggerimento-rapido-metadati-e-modifica-in-linea","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/suggerimento-rapido-metadati-e-modifica-in-linea\/","title":{"rendered":"Suggerimento rapido: metadati e modifica in linea"},"content":{"rendered":"<p>Se si dispone di una meta box personalizzata o si lavora con metadati personalizzati a livello di post, \u00e8 possibile che si verifichi un problema con l&#8217;eliminazione accidentale dei dati durante il salvataggio dalla schermata <strong>Modifica in blocco.<\/strong><\/p>\n<p>L&#8217;impostazione per il problema \u00e8 qualcosa del genere:<\/p>\n<ol>\n<li>hai una raccolta di post che devono essere modificati,<\/li>\n<li>carichi tutti i post nella schermata di modifica collettiva (come mostrato sopra),<\/li>\n<li>applichi una modifica.<\/li>\n<\/ol>\n<p>Una volta che ci\u00f2 accade, la modifica si verifica, ma cancella tutti i metadati dei post personalizzati che potresti avere.<\/p>\n<p>Questo \u00e8 solo un piccolo esempio di codice di come appare il metodo di salvataggio per i tuoi <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-00-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">metadati personalizzati<\/a> (ovvero, sto tralasciando una serie di clausole di guardia):<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Save the options in the meta box.\n *\n * @since    1.0.0\n *\n * @param    int    $post_id    The ID of the current post\n *\/\npublic function save( $post_id) {\n\n  \/\/ Note: Guard clauses removed for readability.\n  \/\/ Assume $metadata is set earlier in this function.\n\n  update_post_meta( $post_id, 'acme-custom-meta-data', $metadata );\n\n}\n<\/code><\/pre>\n<p>Il problema con questo \u00e8 che non c&#8217;\u00e8 alcun controllo che provenga dalla schermata <strong>Modifica collettiva .<\/strong> E per questo motivo, i metadati possono essere completamente eliminati.<\/p>\n<p>Per gestirlo, dobbiamo verificare se la serializzazione proviene dalla schermata <strong>Modifica in blocco.<\/strong> In questo modo, possiamo tornare in anticipo e impedire l&#8217;esecuzione del codice. Nella sua forma pi\u00f9 semplice, puoi fare qualcosa del <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-01-inline-edit-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">genere<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Save the options in the meta box. Ignore the action if it's coming from the\n * Bulk Edit screen.\n *\n * @since    1.0.0\n *\n * @param    int    $post_id    The ID of the current post\n *\/\npublic function save( $post_id) {\n\n  \/\/ Note: Guard clauses removed for readability.\n  \/\/ Assume $metadata is set earlier in this function.\n\n  if (isset( $_POST['_inline_edit'])) {\n    return;\n  }\n\n  update_post_meta( $post_id, 'acme-custom-meta-data', $metadata );\n\n}\n<\/code><\/pre>\n<p>Nota che non consiglio di usare questo testualmente per casi universali o per uso universale poich\u00e9 \u00e8 aggressivo. Invece, penso che valga la pena leggere <strong><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/quick_edit_custom_box\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">questo articolo del Codex<\/a><\/strong> per ottenere maggiori informazioni su come funziona la modifica in linea sia sul lato server che sul lato client.<\/p>\n<p>Lo scopo del post \u00e8 mostrare come i metadati personalizzati possono essere eliminati involontariamente e gettare le basi per prevenirli.<\/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>Ecco un rapido suggerimento su come evitare l&#8217;eliminazione accidentale dei metadati quando l&#8217;utente apporta modifiche utilizzando la schermata di modifica in linea.<\/p>\n","protected":false},"author":1,"featured_media":165183,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,720,844,865],"tags":[1168],"class_list":["post-230351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","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\/230351","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=230351"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230351\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165183"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}