get_post_meta Редактор блоків WordPress (Gutenberg) Еквівалент getEditedPostAttribute(‘meta’)
Якщо ви новачок у написанні плагінів для редактора блоків 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'];
У наведеному вище коді я беру значення мета( 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 у Gutenberg.
Спробуйте в консолі
Увійдіть на свій сайт і використовуйте wpоб’єкт на консолі під час редагування публікації, щоб спробувати це на собі. Ви повинні отримати простий у роботі об’єкт JSON мета публікації:
wp.data.select('core/editor').getEditedPostAttribute('meta');
{
wholesomecode_meta_key_example: 'Example',
}
Оновлення мета публікації
Якщо ви хочете оновити мета публікації з WordPress Gutenberg, ви можете зробити це за допомогою editPostтаeditEntityRecord.