Как использовать get_theme_mod в редакторе Гутенберга WordPress?

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

get_theme_mod( 'news_custom_headline' );

Теперь я хотел бы использовать редактор Гутенберга, но все еще хочу получить доступ к данным из настройщика. Как я могу сделать что-то вроде этого:

save({ attributes }) {
   return <p>Value from backend: get_theme_mod( 'news_custom_headline' ) </p>;
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
394
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ты так не делай. У меня это работает с блоком рендеринга на стороне сервера:

В моем index.js:

registerBlockType('test/custom-php-render-block', {
    title: "Custom Block Server Side Rendering", 
    category: 'widgets',
    edit: () => { return <p>This is just a placeholder!</p>},
    save: () => { return null }
});

В functions.php:

function register_my_custom_block() {
    wp_register_script( 'custom-block-php-script', get_template_directory_uri() . '/build/index.js', array('wp-blocks', 'wp-editor'));
    wp_enqueue_script('custom-block-php-script');

    register_block_type('test/custom-php-render-block', [
        'editor_script' => 'custom-block-php-script',
        'render_callback' => 'custom_block_php-render'
    ]);
}

add_action( 'init', 'register_my_custom_block');

function custom_block_php-render($attr, $content) {
    return '<p>From customizer: ' . get_theme_mod('your-setting') . '</p>';
}        

Подробнее об этом можно прочитать здесь: https://awhitepixel.com/blog/wordpress-gutenberg-create-custom-block-part-9-dynamic-blocks-php-render/

Другие вопросы по теме