get_post_meta WordPress Block Editor (Gutenberg) Equivalente é getEditedPostAttribute(‘meta’)
Se você é novo em escrever plugins para o WordPress Block Editor (Gutenberg), pode estar procurando como obter a meta da postagem atual com get_post_meta.
Não tenha medo, você ainda pode get_post_metausar getEditedPostAttribute('meta')no post atual para obter todo o meta, assim:
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
Contanto que você tenha disponibilizado sua meta-chave na API de descanso, agora você pode pegá-la na metavariável.
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
const metaExample = meta['wholesomecode_meta_key_example'];
No código acima eu pego o valor do meu post meta( wholesomecode_meta_key_example) e passo para a variável metaExample.
Para garantir que seu post meta esteja disponível no Gutenberg, você precisa registrá-lo e garantir que show_in_restesteja definido como 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',
]
);
}
Obtenha o Meta de um Post ID diferente
Se você deseja obter a meta do post de outro post, você pode usar getEntityRecord, e passar o ID do post do post que deseja obter:
const {meta} = wp.data.select('core').getEntityRecord('postType', 'post', 42);
No exemplo acima, o meta do post (desde que tenha sido registrado) agora está localizado na metavariável.
Usar getEntityRecordé o equivalente a fazer um get_post em Gutenberg.
Experimente no console
Faça login no seu site e use o wpobjeto no console enquanto edita uma postagem para experimentar por si mesmo. Você deve obter um fácil de trabalhar com o objeto JSON da meta do post:
wp.data.select('core/editor').getEditedPostAttribute('meta');
{
wholesomecode_meta_key_example: 'Example',
}
Atualizando meta de postagem
Se você deseja atualizar a meta do post de dentro do WordPress Gutenberg, você pode fazer isso com editPosteeditEntityRecord.