Nonaktifkan kiat Gutenberg selamanya - bukan Gutenberg

11

Saya sangat menyukai Gutenberg, namun tips di awal setiap halaman membuat saya marah. Saya ingin menonaktifkan tips yang mengganggu selamanya melalui kode.

Tolong jangan posting plugin "Nonaktifkan Gutenberg", saya sudah pernah melihatnya. Saya ingin melakukannya melalui beberapa baris kode di tema saya.

Pasti ada kail, tetapi saya tidak dapat menemukannya. Terima kasih atas petunjuknya.

masukkan deskripsi gambar di sini

pengguna3135691
sumber

Jawaban:

12

masukkan deskripsi gambar di sini

Perbarui # 1:

Setelah bertanya dari @leymannx saya memeriksa bagaimana pengaturan ini disimpan. Ternyata pengaturan tidak permanen, mereka disimpan di browser sebagai localStorage.

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

Perbarui # 2:

Kiat Gutenberg dapat dinonaktifkan dengan menggunakan dispatch('core/nux').disableTips()( paket NUX ) dan kait tindakan enqueue_block_editor_assets.

file 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');

file disable-tips.js :

jQuery(document).ready(function(){
    var isVisible = wp.data.select('core/nux').areTipsEnabled()
    if (isVisible) {
        wp.data.dispatch('core/nux').disableTips();
    }
});
nmr
sumber
Apakah ini secara global untuk setiap pengguna? Apakah ada cara untuk mengkonfigurasi ini per kode juga? Jadi ketika saya mengirim plugin ke klien, ia menonaktifkan tips ketika plugin ini diaktifkan?
leymannx
1
Jika itu adalah kotak centang pilihan di area admin, mereka akan pergi untuk mengaktifkannya untuk semua karena nilai harus disimpan di suatu tempat Anda harus dalam kode yang dapat mengatur nilai untuk semua pengguna di init atau sesuatu, cobalah untuk menemukan di mana itu menyimpan nilai itu dalam DB
Daniel Vickers
1
@leymannx Ini akan membutuhkan kode tambahan (js + php) yang, setelah diubah areTipsEnabled, menulis status ke DB dan mengembalikannya saat pengguna masuk.
nmr
1
Itu luar biasa, saya akan mencobanya besok dan memeriksa jawabannya jika berhasil. Terima kasih!
user3135691
1
@ user3135691 Dalam file plugin ganti get_stylesheet_directory_uri() . '/disable-tips.js' dengan plugins_url('/disable-tips.js', __FILE__).
nmr
2

Ketika @nmr tahu ini sepertinya disimpan hanya oleh browser. Meskipun saya menemukan solusi untuk menyembunyikannya melalui CSS. Cepat dan kotor.

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

Sumber: Membuat gaya editor tema untuk Gutenberg

leymannx
sumber
Ya, solusi ini juga muncul di pikiran saya tetapi seperti yang Anda katakan: cepat dan kotor. Terima kasih untuk bantuannya.
user3135691