get_post_meta WordPress Block Editor (Gutenberg) Vastaava on getEditedPostAttribute(’meta’)
Jos olet uusi WordPress Block Editor (Gutenberg) -laajennusten kirjoittamisessa, saatat etsiä, kuinka saada nykyisen viestin metatieto sovelluksella get_post_meta.
Älä koskaan pelkää, voit silti get_post_metakäyttää getEditedPostAttribute('meta')vain nykyisessä viestissä saadaksesi kaikki metatiedot, kuten näin:
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
Niin kauan kuin olet asettanut metaavaimesi saataville muussa API:ssa, voit nyt napata sen metamuuttujasta.
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
const metaExample = meta['wholesomecode_meta_key_example'];
Yllä olevassa koodissa nappaan post meta – arvon (wholesomecode_meta_key_example) ja välitän sen muuttujaan metaExample.
Varmistaaksesi, että viestisi meta on saatavilla Gutenbergissä, sinun on rekisteröitävä se ja varmistettava, että se show_in_reston asetettu arvoon 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',
]
);
}
Hanki metatieto toisesta viestitunnuksesta
Jos haluat saada toisen postauksen post-metan, voit käyttää getEntityRecordja välittää sille haluamasi postauksen viestitunnus:
const {meta} = wp.data.select('core').getEntityRecord('postType', 'post', 42);
Yllä olevassa esimerkissä kaikki viestin meta (jos se on rekisteröity) sijaitsee nyt metamuuttujassa.
Käyttäminen getEntityRecordon sama kuin get_post tekeminen Gutenbergissä.
Kokeile konsolissa
Kirjaudu sivustollesi ja käytä wpobjektia konsolissa samalla kun muokkaat viestiä, niin voit kokeilla sitä itse. Sinun pitäisi saada helppokäyttöinen post-meta JSON-objekti:
wp.data.select('core/editor').getEditedPostAttribute('meta');
{
wholesomecode_meta_key_example: 'Example',
}
Päivitetään Post Meta
Jos haluat päivittää post metan WordPress Gutenbergistä, voit tehdä tämän painikkeilla editPostjaeditEntityRecord.