✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

get_post_meta Edytor bloków WordPress (Gutenberg) Odpowiednikiem jest getEditedPostAttribute(’meta’)

13

Jeśli dopiero zaczynasz pisać wtyczki do edytora bloków WordPress (Gutenberg), być może szukasz sposobu, aby uzyskać meta bieżącego postu za pomocą get_post_meta.

Nie bój się, nadal możesz get_post_meta, po prostu użyj getEditedPostAttribute('meta')w bieżącym poście, aby uzyskać całą meta, na przykład:

const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');

Tak długo, jak udostępniłeś swój klucz meta w pozostałym interfejsie API, możesz teraz pobrać go ze metazmiennej.

const meta = wp.data.select('core/editor').getEditedPostAttribute('meta');

const metaExample = meta['wholesomecode_meta_key_example'];

W powyższym kodzie łapię wartość mojego post meta( wholesomecode_meta_key_example) i przekazuję ją do zmiennej metaExample.

Aby upewnić się, że meta posta jest dostępna w Gutenberg, musisz ją zarejestrować i upewnić się, że show_in_restjest ustawiona na 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',
        ]
    );
}

Pobierz Meta z innego identyfikatora posta

Jeśli chcesz uzyskać meta postu innego posta, możesz użyć getEntityRecord, i przekazać mu identyfikator posta posta, który chcesz uzyskać:

const {meta} = wp.data.select('core').getEntityRecord('postType', 'post', 42);

W powyższym przykładzie cała meta dla posta (pod warunkiem, że została zarejestrowana) znajduje się teraz w metazmiennej.

Używanie getEntityRecordjest równoznaczne z wykonaniem get_post w Gutenbergu.

Wypróbuj w konsoli

Zaloguj się do swojej witryny i użyj wpobiektu w konsoli podczas edytowania posta, aby wypróbować go samodzielnie. Powinieneś otrzymać łatwy w obsłudze obiekt JSON meta postu:

wp.data.select('core/editor').getEditedPostAttribute('meta');
{
   wholesomecode_meta_key_example: 'Example',
}

Aktualizowanie meta postu

Jeśli chcesz zaktualizować meta postu z poziomu WordPress Gutenberg, możesz to zrobić za pomocą editPostieditEntityRecord.

Źródło nagrywania: wholesomecode.ltd

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów