Como posso verificar se o editor que está sendo usado no momento é Gutenberg em um plugin do WordPress?
Preciso disso porque o Gutenberg não possui post_submitbox_misc_actions
, portanto, preciso de um fallback que só será usado se o editor atual for o Gutenberg.
plugin-development
block-editor
NerdOfLinux
fonte
fonte
Respostas:
Há uma
is_gutenberg_page()
função que estará presente quando você ativar o Gutenberg, portanto, verifique:Isso verificará apenas se o Gutenberg está ativado e a própria função verificará se o editor atual está definido para carregar o Gutenberg. Então, o CÓDIGO se torna:
Obviamente, isso deve ser verificado nas páginas do painel de administração e quando os dados internos estiverem prontos para chamar a função. Então você terá que fazer a verificação usando um gancho adequado . Por exemplo, se você verificar usando
init
gancho, ele não funcionará .O próprio Gutenberg verifica a
is_gutenberg_page()
função a partir dagutenberg_init()
função, que é carregada usando oreplace_editor
gancho. Então oreplace_editor
hook é um bom lugar para fazer essa verificação.No entanto, sugiro o uso de
admin_enqueue_scripts
para fazer a verificação, pois:admin_enqueue_scripts
é o primeiro gancho que é disparado após o mesmois_gutenberg_page()
cheque que Gutenberg faz.Devido à natureza de Gutenberg, é mais provável que você carregue scripts / estilos externos para seu objetivo.
admin_enqueue_scripts
é um gancho bem conhecido e é acionado apenas nas páginas do painel de administração. Portanto, o front end não é afetado por ele.CÓDIGO de amostra (testado):
fonte
is_block_editor
é necessário para o wp5.0 +A função
is_gutenberg_page
é do plug-in Gutenberg, enquanto ois_block_editor
método está disponível no 5.0. Esta função abaixo combina ambos em uma única função de verificação.O código abaixo é do Freemius SDK , adjunto de sua equipe:
fonte
Gutenberg foi integrado no WordPress 5.0 e agora você pode verificar usando a
use_block_editor_for_post
funçãoComo alternativa, ao criar uma nova postagem, você pode usar a
use_block_editor_for_post_type
função para verificar se o gutenberg está ativo para esse tipo de postagem.fonte
has_blocks
é o caminho a seguir para verificar o conteúdo, mas observe também se você está apenas verificando se a tela do editor de blocos está sendo usada na área de administração, você pode fazer uma verificação como esta (para explicar o novo editor de blocos e o plug-in Gutenberg) :fonte
global $current_screen
.current_screen
gancho porqueis_block_editor
é definido posteriormente. Só funciona se for executado posteriormente (ieload-(page)
). Isso parece um bug no WP.O Gutenberg 3.6 introduziu funções como
has_blocks
ehas_block
. Eles substituem agutenberg_post_has_blocks
função obsoleta .Se
has_blocks
retornos verdadeiros, Gutenberg foi usado durante a edição da postagem.Você pode usar
has_blocks()
sem parâmetros se o$post
global já estiver definido (para algo como um loop de consulta) ou verificar o conteúdo da postagem diretamente comhas_blocks( $content )
fonte
No WP 5.0 e superior, uma função 'has_blocks' está presente em /wp-includes/blocks.php, para que você possa usar:
fonte