Bagaimana saya bisa memeriksa apakah editor yang sedang digunakan adalah Gutenberg di plugin WordPress?
Saya memerlukan ini karena kekurangan Gutenberg post_submitbox_misc_actions
, jadi saya perlu cadangan yang hanya akan digunakan jika editor saat ini adalah Gutenberg.
plugin-development
block-editor
NerdOfLinux
sumber
sumber
Jawaban:
Ada
is_gutenberg_page()
fungsi yang akan hadir saat Anda mengaktifkan Gutenberg, sehingga Anda dapat memeriksa:Ini hanya akan memeriksa apakah Gutenberg diaktifkan, dan fungsi itu sendiri akan memeriksa apakah editor saat ini diatur untuk memuat Gutenberg. Jadi KODE menjadi:
Tentu saja, ini harus diperiksa dari halaman panel admin dan ketika data internal siap untuk memanggil fungsi. Jadi, Anda harus melakukan pemeriksaan menggunakan pengait yang sesuai . Misalnya, jika Anda memeriksa ini menggunakan
init
kait, itu tidak akan berfungsi .Gutenberg sendiri memeriksa
is_gutenberg_page()
fungsi darigutenberg_init()
fungsi, yang dimuat menggunakanreplace_editor
hook. Begitureplace_editor
kait adalah tempat yang baik untuk melakukan pemeriksaan ini.Namun, saya menyarankan penggunaan
admin_enqueue_scripts
untuk melakukan pemeriksaan, karena:admin_enqueue_scripts
adalah kait pertama yang ditembakkan setelahis_gutenberg_page()
pemeriksaan yang sama yang dilakukan Gutenberg.Karena sifat Gutenberg, Anda lebih cenderung memuat skrip / gaya eksternal untuk tujuan Anda.
admin_enqueue_scripts
adalah kait terkenal dan hanya dipecat dari halaman panel admin. Jadi ujung depan tidak terpengaruh olehnya.Contoh KODE (diuji):
sumber
is_block_editor
diperlukan untuk wp5.0 +Fungsi
is_gutenberg_page
ini dari plugin Gutenberg, sedangkanis_block_editor
metode ini tersedia dari 5.0. Fungsi di bawah ini menggabungkan keduanya menjadi fungsi pemeriksaan tunggal.Kode di bawah ini dari Freemius SDK , alat peraga untuk tim mereka:
sumber
Gutenberg telah terintegrasi di WordPress 5.0 dan sekarang Anda dapat memeriksa dengan menggunakan
use_block_editor_for_post
fungsi.Atau, saat membuat posting baru Anda dapat menggunakan
use_block_editor_for_post_type
fungsi untuk memeriksa apakah gutenberg aktif untuk jenis posting ini.sumber
has_blocks
adalah cara untuk memeriksa konten, tetapi juga perhatikan jika Anda hanya memeriksa apakah layar editor blok sedang digunakan di area admin, Anda dapat melakukan pemeriksaan seperti ini (untuk memperhitungkan editor blok baru dan plugin Gutenberg) :sumber
global $current_screen
.current_screen
hook karenais_block_editor
diatur lebih lambat dari itu. Ini hanya berfungsi jika dijalankan di lain waktu (yaituload-(page)
). Ini sepertinya bug di WP.Gutenberg 3.6 memperkenalkan fungsi seperti
has_blocks
danhas_block
. Mereka menggantigutenberg_post_has_blocks
fungsi yang sudah usang .Jika
has_blocks
pengembalian benar daripada Gutenberg digunakan saat mengedit posting.Anda bisa menggunakan
has_blocks()
tanpa params jika$post
global sudah diatur (untuk sesuatu seperti loop kueri) atau memeriksa konten posting secara langsunghas_blocks( $content )
sumber
Di WP 5.0 dan lebih tinggi, fungsi 'has_blocks' hadir di /wp-includes/blocks.php, sehingga Anda dapat menggunakan:
sumber