Le nouvel éditeur appelé Gutenberg est ici en tant que plugin en 4.9, et en tant que fonctionnalité de base appelé Block Editor, en 5.0. En ce qui le concerne, il est souvent nécessaire de déterminer par programme quel éditeur est utilisé pour modifier le message ou la page dans la console du site. Comment faire?
Mise à jour: Il existe un certain nombre de réponses obsolètes à une question similaire:
gutenberg_post_has_blocks()
- cette fonction n'existe que dans le plugin Gutenberg, et non dans 5.0 Coreis_gutenberg_page()
- le mêmethe_gutenberg_project()
- le mêmehas_blocks()
- ne fonctionne pas (retourne false) lorsque Classic Editor est activé et son option "Editeur par défaut pour tous les utilisateurs" = "Block Editor"- la réponse produit simplement une erreur fatale
Call to undefined function get_current_screen()
Donc, avant de commenter cette question et réponse, veuillez prendre un travail pour vérifier ce que vous proposez. Vérifiez-le maintenant, avec la version 4.9 et la version actuelle de WordPress, et toutes les combinaisons possibles de Classic Editor et Gutenberg / Block Editor. Je serai heureux de discuter de la solution testée, pas des liens vers quelque chose.
la source
the_gutenberg_project()
fonction n'existe que dans le plugin Gutenberg, mais pas dans WP 5.0 Core.Réponses:
Il existe plusieurs variantes:
Toutes les variantes mentionnées peuvent être traitées par le code suivant:
La fonction renvoie true si l'éditeur de blocs est actif par quelque moyen que ce soit, et false - dans le cas où l'éditeur classique est ici. Cette fonction ne doit être utilisée qu'après le
plugins_loaded
déclenchement de l'action.PS En raison de la sortie de la version 1.2 du plugin Classic Editor, le code est mis à jour, car les
classic-editor-replace
options prennent désormais des valeurs nonreplace
etno-replace
, maisclassic
etblock
.la source
Vous pouvez utiliser
qui n'est déclenché que lors de l'édition de contenu avec Gutenberg.
la source
enqueue_block_assets
?has_action( 'enqueue_block_assets' )
fait la même chosehas_filter( 'replace_editor'
dans mon code. Il retourne vrai si Classic Editor est actif et définit Classic Editor par défaut. Il vaut mieux vérifier ce que vous proposez avant d'écrire.