Отключить советы Гутенберга навсегда - не Гутенберг

11

Мне очень нравится Гутенберг, однако советы в начале каждой загрузки страницы сводят меня с ума. Я бы хотел навсегда отключить нытье подсказок с помощью кода.

Пожалуйста, не размещайте плагин "Disable Gutenberg", я уже видел это. Я хочу сделать это через пару строк кода в моей теме.

Должен быть крюк, но я не смог его найти. Спасибо за подсказку.

введите описание изображения здесь

user3135691
источник

Ответы:

12

введите описание изображения здесь

Обновление № 1:

Спросив у @leymannx, я проверил, как хранятся эти настройки. Оказалось, что настройки не являются постоянными, они сохраняются в браузере как localStorage.

key: WP_DATA_USER_{id}:
value: {
    "core/nux":{
        "preferences":{
            "areTipsEnabled":false,
            "dismissedTips":{}
        }
    },
    //"core/edit-post"
    //...

Обновление № 2:

Подсказки Гутенберга можно отключить с помощью dispatch('core/nux').disableTips()( пакет NUX ) и ловушки действий enqueue_block_editor_assets.

файл functions.php :

function se334561_editor_tips() {

    wp_enqueue_script(
        'se334561-js',
        // --- to use in plugin ---
        // plugins_url('/disable-tips.js', __FILE__),
        get_stylesheet_directory_uri() . '/disable-tips.js',
        array('wp-blocks')
    );
}
add_action('enqueue_block_editor_assets', 'se334561_editor_tips');

файл disable-tips.js :

jQuery(document).ready(function(){
    var isVisible = wp.data.select('core/nux').areTipsEnabled()
    if (isVisible) {
        wp.data.dispatch('core/nux').disableTips();
    }
});
мр
источник
Это глобально для каждого пользователя? Есть ли способ настроить это для каждого кода? Так что, когда я отправляю плагин клиенту, он отключает подсказки, когда этот плагин активируется?
leymannx
1
Если этот флажок установлен в административной области, они могут переключать его для всех, так как значения должны храниться где-то, в коде вы должны установить это значение для всех пользователей в init или что-то в этом роде, попробуйте найти, где это значение хранится в БД
Даниэль Викерс,
1
@leymannx Для этого потребуется дополнительный код (JS + PHP) , который, после того, как изменения areTipsEnabled, записывает состояние в БД и восстанавливает его при входе пользователя в систему .
мр
1
Это круто, я попробую завтра и проверю ответ, если он работает. Спасибо!
user3135691
1
@ user3135691 В файле плагина заменить get_stylesheet_directory_uri() . '/disable-tips.js' на plugins_url('/disable-tips.js', __FILE__).
мр
2

Как выяснил @nmr, похоже, что он хранится только в браузере. Хотя я нашел способ просто скрыть это с помощью CSS. Быстро и грязно.

functions.php:

// Add backend styles for Gutenberg.
add_action('enqueue_block_editor_assets', 'gutenberg_editor_assets');

function gutenberg_editor_assets() {
  // Load the theme styles within Gutenberg.
  wp_enqueue_style('my-gutenberg-editor-styles', get_theme_file_uri('/assets/gutenberg-editor-styles.css'), FALSE);
}

assets/gutenberg-editor-styles.css:

.components-popover.nux-dot-tip {
  display: none !important;
}

Источник: Создание стилей редактора тем для Гутенберга

leymannx
источник
Да, это решение также пришло мне в голову, но, как вы сказали, оно быстро и грязно. Спасибо за помощь.
user3135691