get_post_meta L’equivalente dell’editor di blocchi di WordPress (Gutenberg) è getEditedPostAttribute(‘meta’)
Se sei nuovo nella scrittura di plug-in per l’editor di blocchi di WordPress (Gutenberg), potresti cercare in giro come ottenere il meta del post corrente con get_post_meta.
Non temere, puoi ancora get_post_meta, basta usare getEditedPostAttribute('meta')sul post corrente per ottenere tutti i meta, in questo modo:
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
Finché hai reso disponibile la tua meta chiave nell’API rest, ora puoi prenderla dalla metavariabile.
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
const metaExample = meta['wholesomecode_meta_key_example'];
Nel codice sopra prendo il valore del mio post meta( wholesomecode_meta_key_example) e lo passo nella variabile metaExample.
Per assicurarti che il tuo post meta sia disponibile in Gutenberg, devi registrarlo e assicurarti che show_in_restsia impostato su 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',
]
);
}
Ottieni la meta da un ID post diverso
Se vuoi ottenere il meta del post di un altro post, puoi usare getEntityRecorde passargli l’ID del post che vuoi ottenere:
const {meta} = wp.data.select('core').getEntityRecord('postType', 'post', 42);
Nell’esempio sopra tutto il meta per il post (ammesso che sia stato registrato) ora si trova nella metavariabile.
Usare getEntityRecordè l’equivalente di fare un get_post in Gutenberg.
Provalo nella Console
Accedi al tuo sito e usa l’ wpoggetto nella console mentre modifichi un post per provarlo di persona. Dovresti ottenere un oggetto JSON facile da lavorare del meta post:
wp.data.select('core/editor').getEditedPostAttribute('meta');
{
wholesomecode_meta_key_example: 'Example',
}
Aggiornamento Post Meta
Se desideri aggiornare il meta post da WordPress Gutenberg, puoi farlo con editPosteeditEntityRecord.