{"id":229761,"date":"2022-11-19T12:48:00","date_gmt":"2022-11-19T09:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229761"},"modified":"2022-11-09T16:16:24","modified_gmt":"2022-11-09T13:16:24","slug":"sugerencia-rapida-metadatos-y-edicion-en-linea","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/sugerencia-rapida-metadatos-y-edicion-en-linea\/","title":{"rendered":"Sugerencia r\u00e1pida: metadatos y edici\u00f3n en l\u00ednea"},"content":{"rendered":"<p>Si tiene un cuadro de metadatos personalizado o est\u00e1 trabajando con metadatos personalizados en el nivel posterior, entonces puede encontrar un problema con la eliminaci\u00f3n accidental de datos al guardarlos desde la pantalla de <strong>edici\u00f3n masiva .<\/strong><\/p>\n<p>La configuraci\u00f3n para el problema es algo como esto:<\/p>\n<ol>\n<li>tienes una colecci\u00f3n de publicaciones que necesitan ser cambiadas,<\/li>\n<li>carga todas las publicaciones en la pantalla de edici\u00f3n masiva (como se muestra arriba),<\/li>\n<li>aplicas un cambio.<\/li>\n<\/ol>\n<p>Una vez que esto sucede, se produce el cambio, pero borra cualquier metadato de publicaci\u00f3n personalizada que pueda tener.<\/p>\n<p>Esta es solo una peque\u00f1a muestra de c\u00f3digo de c\u00f3mo se ve el m\u00e9todo de guardar para sus <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-00-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">metadatos personalizados<\/a> (es decir, estoy omitiendo una serie de cl\u00e1usulas de protecci\u00f3n):<\/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>El problema con esto es que no hay verificaci\u00f3n de que esto provenga de la pantalla de <strong>edici\u00f3n masiva .<\/strong> Y debido a eso, los metadatos se pueden eliminar por completo.<\/p>\n<p>Para manejar esto, debemos verificar si la serializaci\u00f3n proviene de la pantalla de <strong>edici\u00f3n masiva .<\/strong> De esa manera, podemos regresar antes y evitar que se ejecute el c\u00f3digo. En su forma m\u00e1s simple, puedes hacer 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\">como esto<\/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>Tenga en cuenta que no recomiendo usar este textualmente para casos universales o para uso universal, ya que es agresivo. En cambio, creo que vale la pena leer <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 art\u00edculo del Codex<\/a><\/strong> para obtener m\u00e1s informaci\u00f3n sobre c\u00f3mo funciona la edici\u00f3n en l\u00ednea tanto del lado del servidor como del lado del cliente.<\/p>\n<p>El prop\u00f3sito de la publicaci\u00f3n es mostrar c\u00f3mo los metadatos personalizados se pueden eliminar sin querer y sentar las bases b\u00e1sicas para evitarlo.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aqu\u00ed hay un consejo r\u00e1pido sobre c\u00f3mo evitar eliminar metadatos accidentalmente cuando el usuario realiza cambios usando la pantalla de edici\u00f3n en l\u00ednea.<\/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":[892,716,914,840,861],"tags":[1172],"class_list":["post-229761","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-otro","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=229761"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/229761\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/165183"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=229761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=229761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=229761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}