¿Cómo puedo verificar si el editor que se está utilizando actualmente es Gutenberg en un complemento de WordPress?
Necesito esto porque falta Gutenberg post_submitbox_misc_actions
, por lo que necesito un respaldo que solo se usará si el editor actual es Gutenberg.
plugin-development
block-editor
NerdOfLinux
fuente
fuente
Respuestas:
Hay una
is_gutenberg_page()
función que estará presente cuando active Gutenberg, por lo que puede verificar:Esto solo verificará si Gutenberg está activado, y la función misma verificará si el editor actual está configurado para cargar Gutenberg. Entonces el CÓDIGO se convierte en:
Por supuesto, esto debe verificarse desde las páginas del panel de administración y cuando los datos internos estén listos para llamar a la función. Por lo tanto , deberá realizar la verificación con un gancho adecuado . Por ejemplo, si marca esto usando
init
hook, no funcionará .Gutenberg mismo verifica la
is_gutenberg_page()
función desde lagutenberg_init()
función, que se carga usandoreplace_editor
hook. Entoncesreplace_editor
hook es un buen lugar para hacer esta verificación.Sin embargo, sugeriría el uso de
admin_enqueue_scripts
para hacer la verificación, ya que:admin_enqueue_scripts
es el primer gancho que se dispara después del mismois_gutenberg_page()
control que Gutenberg realiza.Debido a la naturaleza de Gutenberg, es más probable que cargue scripts / estilos externos para su propósito.
admin_enqueue_scripts
es un gancho bien conocido y solo se dispara desde las páginas del panel de administración. Por lo tanto, el front end no se ve afectado por él.CÓDIGO de muestra (probado):
fuente
is_block_editor
se requiere para wp5.0 +La función
is_gutenberg_page
es del complemento Gutenberg, mientras que elis_block_editor
método está disponible desde 5.0. Esta función a continuación combina ambas en una única función de verificación.El siguiente código es de Freemius SDK , accesorios para su equipo:
fuente
Gutenberg se ha integrado en WordPress 5.0 y ahora puede verificarlo utilizando la
use_block_editor_for_post
función.Alternativamente, al crear una nueva publicación, puede usar la
use_block_editor_for_post_type
función para verificar si gutenberg está activo para este tipo de publicación.fuente
has_blocks
es el camino a seguir para verificar el contenido, pero también tenga en cuenta que si solo está verificando si la pantalla del editor de bloques se está utilizando en el área de administración, puede hacer una verificación como esta (para tener en cuenta tanto el nuevo editor de bloques como el complemento Gutenberg) :fuente
global $current_screen
.current_screen
gancho porqueis_block_editor
se configura más tarde que eso. Solo funciona si se ejecuta en un momento posterior (es decirload-(page)
). Esto parece un error en WP.Gutenberg 3.6 introdujo funciones como
has_blocks
yhas_block
. Reemplazan lagutenberg_post_has_blocks
función obsoleta .Si
has_blocks
devuelve verdadero que Gutenberg se utilizó al editar la publicación.Puede usar
has_blocks()
sin parámetros si el$post
global ya está configurado (para algo así como un bucle de consulta) o verificar el contenido de la publicación directamente conhas_blocks( $content )
fuente
En WP 5.0 y versiones posteriores, una función 'has_blocks' está presente en /wp-includes/blocks.php, por lo que puede usar:
fuente