✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

get_post_meta Редактор блоков WordPress (Gutenberg) Эквивалент: getEditedPostAttribute(‘meta’)

39

Если вы новичок в написании плагинов для редактора блоков WordPress (Gutenberg), возможно, вы ищете, как получить метаданные текущего поста с помощью get_post_meta.

Не бойтесь, вы все еще можете get_post_metaпросто использовать getEditedPostAttribute('meta')текущий пост, чтобы получить всю мету, например:

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

Пока вы сделали свой мета-ключ доступным в остальном API, теперь вы можете получить его из metaпеременной.

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

const metaExample = meta['wholesomecode_meta_key_example'];

В приведенном выше коде я беру значение моего сообщения meta( wholesomecode_meta_key_example) и передаю его в переменную metaExample.

Чтобы убедиться, что метаданные вашего сообщения доступны в Gutenberg, вам необходимо зарегистрировать его и убедиться, что show_in_restдля него установлено значение 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',
        ]
    );
}

Получить метаданные из другого идентификатора сообщения

Если вы хотите получить метаданные другого сообщения, вы можете использовать getEntityRecordи передать ему идентификатор сообщения, которое вы хотите получить:

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

В приведенном выше примере вся мета для сообщения (при условии, что оно было зарегистрировано) теперь находится в metaпеременной.

Использование getEntityRecordэквивалентно выполнению get_post в Гутенберге.

Попробуйте в консоли

Войдите на свой сайт и используйте wpобъект в консоли во время редактирования сообщения, чтобы попробовать его самостоятельно. Вы должны легко работать с JSON-объектом метаданных поста:

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

Обновление метаданных поста

Если вы хотите обновить метаданные записи из WordPress Gutenberg, вы можете сделать это с помощью editPostиeditEntityRecord.

Источник записи: wholesomecode.ltd

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее