get_post_meta WordPress Block Editor (Gutenberg) Motsvarande är getEditedPostAttribute(’meta’)
Om du är ny på att skriva plugins för WordPress Block Editor (Gutenberg) kanske du letar runt efter hur du får meta för det aktuella inlägget med get_post_meta.
Var aldrig rädd, du kan fortfarande get_post_metaanvända getEditedPostAttribute('meta')på det aktuella inlägget för att få all meta, som så:
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
Så länge du har gjort din metanyckel tillgänglig i restens API så kan du nu ta den från metavariabeln.
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
const metaExample = meta['wholesomecode_meta_key_example'];
I koden ovan tar jag tag i värdet på min postmeta (wholesomecode_meta_key_example) och skickar det till variabeln metaExample.
För att säkerställa att din inläggsmeta är tillgänglig i Gutenberg måste du registrera den och se till att den show_in_restär inställd på true.
add_action( 'init', 'register_meta');
function register_meta() {
register_post_meta(
'post',
'wholesomecode_meta_key_example',
[
'show_in_rest' => true,
'single' => true,
'type' => 'string',
]
);
}
Hämta Meta från ett annat inläggs-ID
Om du vill få inläggets meta för ett annat inlägg kan du använda getEntityRecordoch skicka inläggs-ID:t för inlägget du vill få:
const {meta} = wp.data.select('core').getEntityRecord('postType', 'post', 42);
I exemplet ovan finns nu all meta för posten (förutsatt att den har registrerats) i metavariabeln.
Att använda getEntityRecordär detsamma som att göra en get_post i Gutenberg.
Prova det i konsolen
Logga in på din webbplats och använd wpobjektet i konsolen medan du redigerar ett inlägg för att prova det själv. Du bör få ett lättarbetat JSON-objekt av postmeta:
wp.data.select('core/editor').getEditedPostAttribute('meta');
{
wholesomecode_meta_key_example: 'Example',
}
Uppdaterar Post Meta
Om du vill uppdatera inläggsmeta från WordPress Gutenberg kan du göra detta med editPostocheditEntityRecord.