Jak mogę sprawdzić, czy obecnie używanym edytorem jest Gutenberg we wtyczce WordPress?
Potrzebuję tego, ponieważ Gutenberga brakuje post_submitbox_misc_actions
, więc potrzebuję rezerwy, która zostanie wykorzystana tylko wtedy, gdy bieżącym edytorem jest Gutenberg.
plugin-development
block-editor
NerdOfLinux
źródło
źródło
Odpowiedzi:
Istnieje
is_gutenberg_page()
funkcja, która będzie dostępna po aktywacji Gutenberga, więc możesz sprawdzić:To sprawdzi tylko, czy Gutenberg jest aktywowany, a sama funkcja sprawdzi, czy bieżący edytor jest skonfigurowany do ładowania Gutenberga. KOD staje się:
Oczywiście należy to sprawdzić na stronach panelu administracyjnego i kiedy dane wewnętrzne są gotowe do wywołania funkcji. Musisz więc sprawdzić za pomocą odpowiedniego haka . Na przykład, jeśli zaznaczysz to za pomocą
init
haka, nie będzie działać .Sam Gutenberg sprawdza
is_gutenberg_page()
funkcję wgutenberg_init()
funkcji, która jest ładowana za pomocąreplace_editor
haka. Więcreplace_editor
hak jest dobrym miejscem do tego sprawdzenia.Proponuję jednak użyć
admin_enqueue_scripts
do sprawdzenia, ponieważ:admin_enqueue_scripts
to pierwszy hak wystrzelony po tej samejis_gutenberg_page()
kontroli, którą wykonał Gutenberg.Ze względu na naturę Gutenberga bardziej prawdopodobne jest, że załadujesz zewnętrzne skrypty / style do swoich celów.
admin_enqueue_scripts
jest dobrze znanym hakiem i jest uruchamiany tylko ze stron panelu administracyjnego. Dlatego nie ma to wpływu na interfejs.Przykładowy KOD (testowany):
źródło
is_block_editor
jest wymagany dla wp5.0 +Funkcja
is_gutenberg_page
pochodzi z wtyczki Gutenberga, ais_block_editor
metoda jest dostępna od 5.0. Ta funkcja poniżej łączy oba w jedną funkcję sprawdzania.Poniższy kod pochodzi z Freemius SDK , rekwizyty dla ich zespołu:
źródło
Gutenberg został zintegrowany z WordPress 5.0 i teraz możesz to sprawdzić za pomocą
use_block_editor_for_post
funkcji.Alternatywnie, podczas tworzenia nowego postu możesz użyć
use_block_editor_for_post_type
funkcji, aby sprawdzić, czy gutenberg jest aktywny dla tego typu postów.źródło
has_blocks
to sposób na sprawdzenie zawartości, ale pamiętaj też, że jeśli tylko sprawdzasz, czy ekran edytora bloków jest używany w obszarze administracyjnym, możesz wykonać taką kontrolę (w celu uwzględnienia zarówno nowego edytora bloków, jak i wtyczki Gutenberga) :źródło
global $current_screen
.current_screen
haka, ponieważis_block_editor
jest ustawiony później. Działa tylko wtedy, gdy zostanie wykonany później (tjload-(page)
.). To wydaje się błędem w WP.Gutenberg 3.6 wprowadził funkcje takie jak
has_blocks
ihas_block
. Zastępują one przestarzałegutenberg_post_has_blocks
funkcje.Jeśli
has_blocks
zwroty były prawdziwe, to Gutenberg został użyty podczas edycji postu.Możesz użyć
has_blocks()
bez parametrów, jeśli$post
globalny jest już ustawiony (dla czegoś takiego jak pętla zapytań) lub bezpośrednio sprawdzić zawartość postahas_blocks( $content )
źródło
W WP 5.0 i nowszych funkcja „has_blocks” jest obecna w /wp-include/blocks.php, więc możesz użyć:
źródło