Dezaktywuj na zawsze wskazówki Gutenberga - nie Gutenberga

11

Bardzo lubię Gutenberga, jednak wskazówki na początku ładowania każdej strony doprowadzają mnie do szału. Chciałbym wyłączyć dokuczliwe wskazówki na zawsze i za pomocą kodu.

Proszę nie publikować wtyczki „Wyłącz Gutenberga”, już to widziałem. Chcę to zrobić za pomocą kilku wierszy kodu w moim motywie.

Musi być haczyk, ale nie mogłem go znaleźć. Dzięki za podpowiedź.

wprowadź opis zdjęcia tutaj

użytkownik3135691
źródło

Odpowiedzi:

12

wprowadź opis zdjęcia tutaj

Aktualizacja nr 1:

Po zapytaniu od @leymannx sprawdziłem, jak te ustawienia są przechowywane. Okazało się, że ustawienia nie są trwałe, są zapisywane w przeglądarce jako localStorage.

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

Aktualizacja nr 2:

Wskazówki Gutenberga można wyłączyć za pomocą dispatch('core/nux').disableTips()( pakietu NUX ) i haka do akcji enqueue_block_editor_assets.

funkcje pliku. 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');

plik disable-tips.js :

jQuery(document).ready(function(){
    var isVisible = wp.data.select('core/nux').areTipsEnabled()
    if (isVisible) {
        wp.data.dispatch('core/nux').disableTips();
    }
});
nmr
źródło
Czy dotyczy to globalnie każdego użytkownika? Czy istnieje również sposób skonfigurowania tego dla każdego kodu? Więc kiedy wysyłam wtyczkę do klienta, dezaktywuje wskazówki, kiedy ta wtyczka zostanie aktywowana?
leymannx
1
Jeśli jest to pole wyboru z opcją w obszarze administracyjnym, będzie daleko, aby przełączać je dla wszystkich, ponieważ wartości muszą być przechowywane gdzieś, w kodzie powinieneś być w stanie ustawić tę wartość dla wszystkich użytkowników na init lub coś, spróbuj znaleźć gdzie przechowuje tę wartość w DB
Daniel Vickers
1
@leymannx Wymagałoby to dodatkowego kodu (js + php), który po zmianie areTipsEnabledzapisuje stan do DB i przywraca go, gdy użytkownik się zaloguje.
nmr
1
To niesamowite, wypróbuję to jutro i sprawdzę odpowiedź, czy to działa. Dziękuję Ci!
user3135691
1
@ user3135691 W plugin plik zastąpić get_stylesheet_directory_uri() . '/disable-tips.js' z plugins_url('/disable-tips.js', __FILE__).
nmr
2

Jak się dowiedział @nmr, wydaje się, że jest to przechowywane tylko w przeglądarce. Chociaż znalazłem obejście, aby po prostu ukryć je za pomocą CSS. Szybko i brudno.

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;
}

Źródło: Tworzenie stylów edytora motywów dla Gutenberga

leymannx
źródło
Tak, to samo przyszło mi do głowy, ale jak już powiedziałeś: jest szybkie i brudne. Dziękuję za pomoc
user3135691 17.04.19