Wie kann ich überprüfen, ob der aktuell verwendete Editor Gutenberg in einem WordPress-Plugin ist?
Ich brauche das, weil Gutenberg fehlt post_submitbox_misc_actions
, also brauche ich einen Fallback, der nur verwendet wird, wenn der aktuelle Editor Gutenberg ist.
plugin-development
block-editor
NerdOfLinux
quelle
quelle
Antworten:
is_gutenberg_page()
Wenn Sie Gutenberg aktivieren, ist eine Funktion vorhanden, sodass Sie Folgendes überprüfen können:Dies überprüft nur, ob Gutenberg aktiviert ist, und die Funktion selbst überprüft, ob der aktuelle Editor so eingestellt ist, dass Gutenberg geladen wird. So wird der CODE:
Dies muss natürlich auf den Seiten des Admin-Panels überprüft werden und wenn die internen Daten bereit sind, die Funktion aufzurufen. So musst du den Scheck tun , um eine geeignete Haken verwenden . Zum Beispiel, wenn Sie diese verwenden überprüfen
init
Haken, es wird nicht funktionieren .Gutenberg selbst überprüft die
is_gutenberg_page()
Funktion von dergutenberg_init()
Funktion, die mitreplace_editor
hook geladen wird . Soreplace_editor
Haken ist ein guter Ort , um diese Überprüfung zu tun.Ich würde jedoch die Verwendung von
admin_enqueue_scripts
für die Überprüfung vorschlagen , da:admin_enqueue_scripts
ist der erste Haken, der nach dem gleichenis_gutenberg_page()
Scheck abgefeuert wird, den Gutenberg selbst macht.Aufgrund der Natur von Gutenberg laden Sie mit größerer Wahrscheinlichkeit externe Skripte / Stile für Ihren Zweck.
admin_enqueue_scripts
ist ein bekannter Hook und wird nur von Admin-Panel-Seiten ausgelöst. Das Frontend ist also nicht davon betroffen.Beispielcode (getestet):
quelle
is_block_editor
wird für wp5.0 + benötigtDie Funktion
is_gutenberg_page
stammt aus dem Gutenberg-Plugin, während dieis_block_editor
Methode ab 5.0 verfügbar ist. Diese Funktion kombiniert beide Funktionen zu einer einzigen Prüffunktion.Der folgende Code stammt von Freemius SDK und ist Teil des Teams:
quelle
Gutenberg wurde in WordPress 5.0 integriert und jetzt können Sie mit der
use_block_editor_for_post
Funktion überprüfen .Alternativ können Sie beim Anlegen eines neuen Beitrags mit der
use_block_editor_for_post_type
Funktion prüfen, ob gutenberg für diesen Beitragstyp aktiv ist.quelle
has_blocks
ist der Weg, um Inhalte zu überprüfen, aber auch, wenn Sie nur prüfen, ob der Blockeditor-Bildschirm im Admin-Bereich verwendet wird, können Sie dies überprüfen (um sowohl den neuen Blockeditor als auch das Gutenberg-Plugin zu berücksichtigen). :quelle
global $current_screen
.current_screen
Hook angehängten Funktion ausgeführt wird, dais_block_editor
es später gesetzt wird. Es funktioniert nur, wenn es zu einem späteren Zeitpunkt ausgeführt wird (dhload-(page)
). Dies scheint ein Fehler in WP.Gutenberg 3.6 führte Funktionen wie
has_blocks
und einhas_block
. Sie ersetzen die veraltetegutenberg_post_has_blocks
Funktion.Wenn der
has_blocks
Wert true ist, wurde beim Bearbeiten des Beitrags Gutenberg verwendet.Sie können entweder
has_blocks()
ohne Parameter verwenden, wenn das$post
globale Element bereits festgelegt ist (für eine Art Abfrageschleife), oder den Inhalt des Posts direkt mit überprüfenhas_blocks( $content )
quelle
In WP 5.0 und höher ist in /wp-includes/blocks.php eine Funktion 'has_blocks' enthalten, mit der Sie Folgendes ausführen können:
quelle