{"id":230115,"date":"2022-11-19T12:30:00","date_gmt":"2022-11-19T09:30:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230115"},"modified":"2022-11-09T20:09:20","modified_gmt":"2022-11-09T17:09:20","slug":"dica-rapida-metadados-e-edicao-em-linha","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/dica-rapida-metadados-e-edicao-em-linha\/","title":{"rendered":"Dica r\u00e1pida: metadados e edi\u00e7\u00e3o em linha"},"content":{"rendered":"<p>Se voc\u00ea tiver uma meta box personalizada ou estiver trabalhando com metadados personalizados no n\u00edvel de postagem, poder\u00e1 encontrar um problema com a exclus\u00e3o acidental de dados ao salv\u00e1-los na tela de <strong>edi\u00e7\u00e3o em massa<\/strong>.<\/p>\n<p>A configura\u00e7\u00e3o do problema \u00e9 algo assim:<\/p>\n<ol>\n<li>voc\u00ea tem uma cole\u00e7\u00e3o de postagens que precisam ser alteradas,<\/li>\n<li>voc\u00ea carrega todas as postagens na tela de edi\u00e7\u00e3o em massa (como mostrado acima),<\/li>\n<li>voc\u00ea aplica uma mudan\u00e7a.<\/li>\n<\/ol>\n<p>Quando isso acontece, a altera\u00e7\u00e3o ocorre, mas apaga todos os metadados de postagem personalizados que voc\u00ea possa ter.<\/p>\n<p>Esta \u00e9 apenas uma pequena amostra de c\u00f3digo da apar\u00eancia do m\u00e9todo save para seus <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-00-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">metadados personalizados<\/a> (ou seja, estou deixando de fora v\u00e1rias cl\u00e1usulas de guarda):<\/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>O problema com isso \u00e9 que n\u00e3o h\u00e1 verifica\u00e7\u00e3o de que isso esteja vindo da\u00a0 tela de <strong>edi\u00e7\u00e3o em massa<\/strong>. E por causa disso, os metadados podem ser completamente exclu\u00eddos.<\/p>\n<p>Para lidar com isso, precisamos verificar se a serializa\u00e7\u00e3o est\u00e1 vindo da\u00a0 tela <strong>Bulk Edit<\/strong>. Dessa forma, podemos retornar mais cedo e impedir que o c\u00f3digo seja executado. Em sua forma mais simples, voc\u00ea pode fazer algo <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-01-inline-edit-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">assim<\/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>Observe que eu n\u00e3o recomendo usar isso literalmente para casos universais ou para uso universal, pois \u00e9 agressivo. Em vez disso, acho que vale a pena ler <strong><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/quick_edit_custom_box\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este artigo do Codex<\/a><\/strong> para obter mais informa\u00e7\u00f5es sobre como a edi\u00e7\u00e3o em linha funciona tanto no lado do servidor quanto no lado do cliente.<\/p>\n<p>O objetivo da postagem \u00e9 mostrar como os metadados personalizados podem ser exclu\u00eddos involuntariamente e estabelecer as bases b\u00e1sicas de como voc\u00ea pode evit\u00e1-lo.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aqui est\u00e1 uma dica r\u00e1pida sobre como evitar a exclus\u00e3o acidental de metadados quando o usu\u00e1rio faz altera\u00e7\u00f5es usando a tela de edi\u00e7\u00e3o em linha.<\/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":[898,722,920,846,867],"tags":[1170],"class_list":["post-230115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-outro","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=230115"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230115\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/165183"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}