get_post_meta WordPress Block Editor (Gutenberg) Äquivalent ist getEditedPostAttribute(‚meta‘)
Wenn Sie neu im Schreiben von Plugins für den WordPress-Blockeditor (Gutenberg) sind, suchen Sie möglicherweise nach Möglichkeiten, wie Sie das Meta des aktuellen Beitrags mit get_post_meta.
Keine Angst, Sie können immer noch get_post_meta, verwenden Sie einfach getEditedPostAttribute('meta')den aktuellen Beitrag, um alle Metadaten zu erhalten, wie folgt:
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
Solange Sie Ihren Metaschlüssel in der Rest-API verfügbar gemacht haben, können Sie ihn jetzt aus der metaVariablen abrufen.
const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');
const metaExample = meta['wholesomecode_meta_key_example'];
Im obigen Code nehme ich den Wert meines Post-Meta( wholesomecode_meta_key_example) und übergebe ihn an die Variable metaExample.
Um sicherzustellen, dass Ihr Post-Meta in Gutenberg verfügbar ist, müssen Sie es registrieren und sicherstellen, dass show_in_restes auf gesetzt ist 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',
]
);
}
Holen Sie sich die Meta von einer anderen Post-ID
Wenn Sie das Beitrags-Meta eines anderen Beitrags abrufen möchten, können Sie verwenden getEntityRecordund ihm die Beitrags-ID des gewünschten Beitrags übergeben:
const {meta} = wp.data.select('core').getEntityRecord('postType', 'post', 42);
In obigem Beispiel steht nun das Meta für den Beitrag (sofern er registriert wurde) in der metaVariable.
Die Verwendung getEntityRecordist das Äquivalent zu einem get_post in Gutenberg.
Probieren Sie es in der Konsole aus
Melden Sie sich bei Ihrer Website an und verwenden Sie das wpObjekt in der Konsole, während Sie einen Beitrag bearbeiten, um es selbst auszuprobieren. Sie sollten ein einfach zu bearbeitendes JSON-Objekt des Post-Metas erhalten:
wp.data.select('core/editor').getEditedPostAttribute('meta');
{
wholesomecode_meta_key_example: 'Example',
}
Post-Meta aktualisieren
Wenn Sie Post-Meta aus WordPress Gutenberg heraus aktualisiereneditPost``editEntityRecord möchten, können Sie dies mit und tun .