{"id":229435,"date":"2022-11-19T13:01:00","date_gmt":"2022-11-19T10:01:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229435"},"modified":"2022-11-09T07:02:34","modified_gmt":"2022-11-09T04:02:34","slug":"krotka-wskazowka-metadane-i-edycja-w-tekscie","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/krotka-wskazowka-metadane-i-edycja-w-tekscie\/","title":{"rendered":"Kr\u00f3tka wskaz\u00f3wka: metadane i edycja w tek\u015bcie"},"content":{"rendered":"<p>Je\u015bli masz niestandardowe pole meta lub pracujesz z niestandardowymi metadanymi na poziomie posta, mo\u017cesz natkn\u0105\u0107 si\u0119 na problem z przypadkowym usuni\u0119ciem danych podczas zapisywania ich na\u00a0 ekranie <strong>edycji zbiorczej<\/strong>.<\/p>\n<p>Konfiguracja problemu wygl\u0105da mniej wi\u0119cej tak:<\/p>\n<ol>\n<li>masz zbi\u00f3r post\u00f3w, kt\u00f3re trzeba zmieni\u0107,<\/li>\n<li>\u0142adujesz wszystkie posty na ekranie edycji zbiorczej (jak pokazano powy\u017cej),<\/li>\n<li>zastosujesz zmian\u0119.<\/li>\n<\/ol>\n<p>Gdy to nast\u0105pi, zmiana nast\u0105pi, ale spowoduje usuni\u0119cie wszelkich niestandardowych metadanych post\u00f3w, kt\u00f3re mo\u017cesz mie\u0107.<\/p>\n<p>To tylko niewielka pr\u00f3bka kodu pokazuj\u0105ca, jak wygl\u0105da metoda zapisywania dla <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-00-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">niestandardowych metadanych<\/a> (pomijam kilka klauzul ochronnych):<\/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>Problem polega na tym, \u017ce nie mo\u017cna sprawdzi\u0107, czy pochodzi to z ekranu <strong>edycji zbiorczej .<\/strong> Dzi\u0119ki temu metadane mo\u017cna ca\u0142kowicie usun\u0105\u0107.<\/p>\n<p>Aby sobie z tym poradzi\u0107, musimy sprawdzi\u0107, czy serializacja pochodzi z ekranu <strong>edycji zbiorczej .<\/strong> W ten spos\u00f3b mo\u017cemy wr\u00f3ci\u0107 wcze\u015bniej i uniemo\u017cliwi\u0107 wykonanie kodu. W najprostszej formie mo\u017cesz zrobi\u0107 co\u015b <a href=\"https:\/\/gist.github.com\/tommcfarlin\/356c70c37202d3b93ba31dd5ee981e8c#file-01-inline-edit-save-metadata-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">takiego<\/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>Zauwa\u017c, \u017ce nie polecam u\u017cywania tego dos\u0142ownie w uniwersalnych przypadkach lub do uniwersalnego u\u017cytku, poniewa\u017c jest agresywny. Zamiast tego my\u015bl\u0119, \u017ce warto przeczyta\u0107 <strong><a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/quick_edit_custom_box\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ten artyku\u0142 w Kodeksie<\/a><\/strong>, aby uzyska\u0107 wi\u0119cej informacji o tym, jak edycja inline dzia\u0142a zar\u00f3wno po stronie serwera, jak i klienta.<\/p>\n<p>Celem postu jest pokazanie, w jaki spos\u00f3b niestandardowe metadane mog\u0105 zosta\u0107 przypadkowo usuni\u0119te, oraz po\u0142o\u017cy\u0107 podwaliny pod to, jak mo\u017cna temu zapobiec.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oto kr\u00f3tka wskaz\u00f3wka, jak unikn\u0105\u0107 przypadkowego usuni\u0119cia metadanych, gdy u\u017cytkownik wprowadza zmiany za pomoc\u0105 wbudowanego ekranu edycji.<\/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":[721,919,897,845,866],"tags":[1169],"class_list":["post-229435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-inny","category-kod","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229435"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229435\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/165183"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}