Comment puis-je vérifier si l'éditeur actuellement utilisé est Gutenberg dans un plugin WordPress?
J'en ai besoin parce que Gutenberg manque post_submitbox_misc_actions
, j'ai donc besoin d'une solution de secours qui ne sera utilisée que si l'éditeur actuel est Gutenberg.
plugin-development
block-editor
NerdOfLinux
la source
la source
Réponses:
Il y a une
is_gutenberg_page()
fonction qui sera présente lorsque vous activerez Gutenberg, vous pouvez donc vérifier:Cela vérifiera seulement si Gutenberg est activé, et la fonction elle-même vérifiera si l'éditeur actuel est configuré pour charger Gutenberg. Le CODE devient donc:
Bien sûr, cela doit être vérifié à partir des pages du panneau d'administration et lorsque les données internes sont prêtes à appeler la fonction. Donc , vous devrez faire le contrôle à l' aide d' un crochet approprié . Par exemple, si vous vérifiez cela en utilisant le
init
crochet, cela ne fonctionnera pas .Gutenberg vérifie lui-même la
is_gutenberg_page()
fonction à partir de lagutenberg_init()
fonction, qui est chargée à l'aide dereplace_editor
hook. Lereplace_editor
crochet est donc un bon endroit pour effectuer cette vérification.Cependant, je suggère l'utilisation de
admin_enqueue_scripts
pour effectuer le chèque, car:admin_enqueue_scripts
est le premier crochet qui est tiré après le mêmeis_gutenberg_page()
contrôle que Gutenberg fait lui-même.En raison de la nature de Gutenberg, vous êtes plus susceptible de charger des scripts / styles externes pour votre objectif.
admin_enqueue_scripts
est un crochet bien connu et il est uniquement tiré depuis les pages du panneau d'administration. Donc, la partie avant n'en est pas affectée.Exemple de CODE (testé):
la source
is_block_editor
est requis pour wp5.0 +La fonction
is_gutenberg_page
provient du plugin Gutenberg, tandis que lais_block_editor
méthode est disponible à partir de 5.0. Cette fonction ci-dessous combine les deux en une seule fonction de vérification.Le code ci-dessous est de Freemius SDK , accessoires à leur équipe:
la source
Gutenberg a été intégré dans WordPress 5.0 et maintenant vous pouvez vérifier en utilisant la
use_block_editor_for_post
fonction.Alternativement, lors de la création d'un nouveau message, vous pouvez utiliser la
use_block_editor_for_post_type
fonction pour vérifier si gutenberg est actif pour ce type de message.la source
has_blocks
est le chemin à parcourir pour vérifier le contenu, mais notez également que si vous vérifiez simplement si l'écran de l'éditeur de blocs est utilisé dans la zone d'administration, vous pouvez effectuer une vérification comme celle-ci (pour tenir compte à la fois du nouvel éditeur de blocs et du plugin Gutenberg) :la source
global $current_screen
.current_screen
crochet car ilis_block_editor
est défini plus tard. Cela ne fonctionne que s'il est exécuté ultérieurement (c'est-à-direload-(page)
). Cela semble être un bug dans WP.Gutenberg 3.6 a introduit des fonctions comme
has_blocks
ethas_block
. Ils remplacent lagutenberg_post_has_blocks
fonction obsolète .Si
has_blocks
renvoie vrai, Gutenberg a été utilisé lors de l'édition du message.Vous pouvez soit utiliser
has_blocks()
sans paramètres si le$post
global est déjà défini (pour quelque chose comme une boucle de requête) ou vérifier le contenu du post directement avechas_blocks( $content )
la source
Dans WP 5.0 et supérieur, une fonction 'has_blocks' est présente dans /wp-includes/blocks.php, vous pouvez donc utiliser:
la source