{"id":228301,"date":"2022-10-16T09:43:00","date_gmt":"2022-10-16T06:43:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228301"},"modified":"2022-11-09T01:45:55","modified_gmt":"2022-11-08T22:45:55","slug":"postitusmeta-vaeljade-kasutamine-atribuutide-salvestamiseks-wordpressi-plokiredaktoris-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/postitusmeta-vaeljade-kasutamine-atribuutide-salvestamiseks-wordpressi-plokiredaktoris-gutenberg\/","title":{"rendered":"Postitusmeta v\u00e4ljade kasutamine atribuutide salvestamiseks WordPressi plokiredaktoris (Gutenberg)"},"content":{"rendered":"\n<p>Kui registreerite ja salvestate atribuute WordPressi plokiredaktoris (Gutenberg), on teil v\u00f5imalus salvestada need tavap\u00e4raste plokiatribuutide asemel postitusmetana.<\/p>\n<p>Seda meetodit kasutades v\u00f5ib teie plokis olla s\u00e4te, mis saab juhtida midagi postituse ulatuses v\u00f5i mallil.<\/p>\n<p><strong>Oluline m\u00e4rkus postituse metaatribuutide renderdamise kohta<\/strong><\/p>\n<p>Postituse metaatribuute ei saa renderdada JavaScripti salvestusmeetodi abil. Gutenbergi meeskond otsustas seda \u00e4ra hoida, kuna postituse metav\u00e4lju renderdavad plokid v\u00f5ivad mujal postituses muutuva post-meta t\u00f5ttu kergesti puruneda.<\/p>\n<p>Selles juhendis k\u00e4sitleme seda, mida oleme oma <a href=\"https:\/\/wholesomecode.ltd\/guides\/creating-plugin-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi Gutenbergi pistikprogrammi juhendis<\/a> ja ka <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00fcnaamilise blokeerimise juhendis<\/a> juba loonud .<\/p>\n<h2>Eeldused<\/h2>\n<ul>\n<li>Olge tuttav <a href=\"https:\/\/wholesomecode.ltd\/guides\/creating-plugin-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi Gutenbergi pistikprogrammide loomisega<\/a><\/li>\n<li>Olge tuttav <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00fcnaamiliste plokkide ja serveripoolse renderdamisega<\/a><\/li>\n<\/ul>\n<h2>Postituse meta registreerimine PHP-s<\/h2>\n<p>Enne kui saame JavaScriptis posti metav\u00e4lja kasutada, peame veenduma, et oleme selle PHP-s registreerinud <code>register_meta<\/code>ja <code>show_in_rest<\/code>argumendiks on seatud t\u00f5ene.<\/p>\n<p>J\u00e4rgides <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00fcnaamilise blokeerimise juhendit<\/a>, avage pistikprogrammi PHP juurfail (antud juhul <code>wholesome-plugin.php<\/code>) ja lisage p\u00e4rast k\u00f5iki muid funktsioone selle faili allossa j\u00e4rgmine kood:<\/p>\n<pre><code>function wholesomecode_wholesome_plugin_register_post_meta() {\n    register_meta(\n        'post',\n        '_wholesomecode_wholesome_plugin_block_text',\n        [\n            'auth_callback' =&gt; '__return_true',\n            'default'       =&gt; __( 'Wholesome Plugin \u2013 hello from the editor!', 'wholesome-plugin' ),\n            'show_in_rest'  =&gt; true,\n            'single'        =&gt; true,\n            'type'          =&gt; 'string',\n        ]\n    );\n}\nadd_action( 'init', 'wholesomecode_wholesome_plugin_register_post_meta' );\n<\/code><\/pre>\n<p>See kood registreerib metav\u00e4lja, mida kutsutakse postituse t\u00fc\u00fcbi <code>_wholesomecode_wholesome_plugin_block_text<\/code>jaoks. <code>post<\/code>Samuti tagab see, et REST API p\u00e4\u00e4seb sellele metav\u00e4ljale juurde, kui <code>show_in_rest<\/code>v\u00e4\u00e4rtuseks on seatud t\u00f5ene.<\/p>\n<p>Samuti anname funktsiooni <code>__return_true<\/code>edasi <code>auth_callback<\/code>argumendile, et tagada, et meil on \u00f5igused sellele parameetrile juurde p\u00e4\u00e4seda. Kui sooviksime selle parameetri jaoks paremat turvalisust, muudaksime selle kohandatud funktsiooniks, mis kontrollib teatud kasutajarolli.<\/p>\n<h2>Postituse metaatribuutide registreerimine JavaScriptis<\/h2>\n<p>J\u00e4llegi, j\u00e4rgides eelmist juhendit, avage <code>\/src\/index.js<\/code>ja asendage <code>attributes<\/code>see j\u00e4rgmisega:<\/p>\n<pre><code>attributes: {\n  blockText: {\n    meta: '_wholesomecode_wholesome_plugin_block_text',\n    source: 'meta',\n  },\n},\n<\/code><\/pre>\n<p>Atribuudi t\u00fc\u00fcbi m\u00e4\u00e4ramise ja vaikev\u00e4\u00e4rtuse m\u00e4\u00e4ramise asemel m\u00e4\u00e4ratleme metav\u00f5tme, millest andmeatribuut p\u00e4rineb, ja n\u00e4itame <code>source<\/code>, et atribuudiks on <code>meta<\/code>.<\/p>\n<p>Nagu on m\u00e4rgitud selle juhendi \u00fclaosas olevas hoiatuses, ei p\u00e4\u00e4se te JavaScripti <code>save<\/code>meetodi kaudu juurde postituse metav\u00e4lja atribuutidele, seega kompileerige pistikprogramm <code>npm start<\/code>ja vaadake, kuidas saame meta v\u00e4ljastada.<\/p>\n<h2>Postituse meta renderdamine<\/h2>\n<p>Kuna oleme salvestanud oma atribuudi postmeta-na, saame selle v\u00e4ljastada k\u00f5ikjal WordPressis, kasutades <code>get_post_meta<\/code>(eeldusel, et meil on olemas <code>$post_id<\/code>):<\/p>\n<pre><code>get_post_meta( $post_id, '_wholesomecode_wholesome_plugin_block_text', true );\n<\/code><\/pre>\n<p>J\u00e4tkates <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00fcnaamilise blokeerimise juhendit<\/a>, vaatame, kuidas p\u00e4\u00e4seme sellele atribuudile juurde PHP-s serveri poolel.<\/p>\n<p>Meta ei ole <code>$attributes<\/code>parameetri parameetri kaudu saadaval <code>render_callback<\/code>, kuna postituse metaatribuudid ei edasta oma v\u00e4\u00e4rtust sellele parameetrile, kuid meil on juurdep\u00e4\u00e4s globaalsele <code>$post<\/code>objektile, et saada postituse ID.<\/p>\n<p>Seda silmas pidades v\u00e4rskendame oma <code>register_block_type<\/code>postituse meta v\u00e4ljastamiseks:<\/p>\n<pre><code>register_block_type(\n  'wholesomecode\/wholesome-plugin',\n  array(\n    'editor_script'   =&gt; 'wholesomecode-wholesome-plugin-block-editor',\n    'editor_style'    =&gt; 'wholesomecode-wholesome-plugin-block-editor',\n    'render_callback' =&gt; function( $attributes, $content) {\n      global $post;\n      $block_text = get_post_meta( $post-&gt;ID, '_wholesomecode_wholesome_plugin_block_text', true );\n      return \"&lt;p class='wp-block-wholesomecode-wholesome-plugin'&gt;$block_text&lt;\/p&gt;\";\n    },\n    'style'           =&gt; 'wholesomecode-wholesome-plugin-block',) );\n<\/code><\/pre>\n<p>Pange t\u00e4hele, et me ei pea enam <code>attributes<\/code>siin registreerima, kuna p\u00e4\u00e4seme funktsiooni kaudu ainult posti metav\u00e4ljale <code>get_post_meta<\/code>.<\/p>\n<h3>Bloki kasutamine<\/h3>\n<p>See ei ole seda t\u00fc\u00fcpi meta parim kasutusjuht, kuid plokki kasutades n\u00e4eme, et kuna me salvestame atribuudid post metana, siis kui v\u00e4rskendame atribuuti \u00fches plokis, v\u00e4rskendab see k\u00f5iki plokke, nagu postituse meta salvestatakse postituse, mitte \u00fcksiku ploki juurde:<\/p>\n<p>Postitage metaatribuudid tegevuses<\/p>\n<ul>\n<li>Vaadake <a href=\"https:\/\/wholesomecode.ltd\/guides\/template-innerblocks-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">komponendiga<\/a> <a href=\"https:\/\/wholesomecode.ltd\/guides\/template-innerblocks-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pesastatud alamplokkide loomist<code>InnerBlocks<\/code><\/a><\/li>\n<li>T\u00e4iendage postmeta kasutamist Gutenbergis, <a href=\"https:\/\/wholesomecode.ltd\/guides\/create-custom-meta-boxes-using-the-wordpress-block-editor-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">luues Gutenbergis kohandatud metakastid<\/a><\/li>\n<li>Vaadake <a href=\"https:\/\/wholesomecode.ltd\/guides\/options-settings-data-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gutenbergi suvandite tabelis olevate andmete salvestamise seadete kasutamist<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kui registreerite ja salvestate atribuute WordPressi plokiredaktoris (Gutenberg), on teil v\u00f5imalus salvestada need tavap\u00e4raste plokiatribuutide asemel postitusmetana. Selle m&#8230;<\/p>\n","protected":false},"author":1,"featured_media":223685,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,937,894,916,812,863],"tags":[1165],"class_list":["post-228301","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-gutenberg-4","category-kood","category-muud","category-pistikprogrammid","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=228301"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228301\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/223685"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}