Как я могу проверить, является ли используемый в настоящее время редактор Gutenberg в плагине WordPress?
Мне это нужно, потому что Гутенбергу не хватает post_submitbox_misc_actions
, поэтому мне нужен запасной вариант, который будет использоваться, только если текущий редактор - Гутенберг.
plugin-development
block-editor
NerdOfLinux
источник
источник
Ответы:
Есть
is_gutenberg_page()
функция, которая будет присутствовать при активации Gutenberg, поэтому вы можете проверить:Это будет только проверять, активирован ли Gutenberg, а сама функция проверяет, установлен ли текущий редактор для загрузки Gutenberg. Итак, КОД становится:
Конечно, это нужно проверить на страницах панели администратора и когда внутренние данные готовы к вызову функции. Таким образом, вы должны будете сделать проверку, используя подходящий крючок . Например, если вы проверите это с помощью
init
хука, он не будет работать .Гутенберг сам проверяет
is_gutenberg_page()
функцию изgutenberg_init()
функции, которая загружается с помощьюreplace_editor
хука. Так чтоreplace_editor
крюк - хорошее место для этой проверки.Тем не менее, я бы предложил использовать
admin_enqueue_scripts
для проверки, так как:admin_enqueue_scripts
это первый крюк, который срабатывает после той жеis_gutenberg_page()
проверки, которую делает Гутенберг.Из-за природы Гутенберга вы, скорее всего, будете загружать внешние сценарии / стили для своих целей.
admin_enqueue_scripts
это хорошо известный хук, и он запускается только со страниц админ-панели. Таким образом, передний конец не затронут этим.Пример кода (проверено):
источник
is_block_editor
требуется для wp5.0 +Функция
is_gutenberg_page
взята из плагина Гутенберга, аis_block_editor
метод доступен с версии 5.0. Эта функция ниже объединяет оба в одну функцию проверки.Код ниже взят из Freemius SDK , реквизит для их команды:
источник
Гутенберг был интегрирован в WordPress 5.0, и теперь вы можете проверить с помощью
use_block_editor_for_post
функции.Кроме того , при создании новой записи вы можете использовать
use_block_editor_for_post_type
функцию для проверки , если Гутенберг активен к этому типу.источник
has_blocks
это способ проверки содержимого, но также обратите внимание, что если вы просто проверяете, используется ли экран редактора блоков в области администратора, вы можете выполнить такую проверку (чтобы учесть как новый редактор блоков, так и плагин Gutenberg) :источник
global $current_screen
.current_screen
хуку, потому чтоis_block_editor
он установлен позже. Это работает, только если оно выполнено позднее (т.е.load-(page)
). Это похоже на ошибку в WP.Гутенберг 3.6 ввел такие функции, как
has_blocks
иhas_block
. Они заменяют устаревшуюgutenberg_post_has_blocks
функцию.Если
has_blocks
возвращает true, то Гутенберг был использован при редактировании поста.Вы можете либо использовать
has_blocks()
без параметров, если$post
глобальный уже установлен (для чего-то вроде цикла запроса), либо проверить содержимое публикации непосредственно сhas_blocks( $content )
источник
В WP 5.0 и выше, функция 'has_blocks' присутствует в /wp-include/blocks.php, поэтому вы можете использовать:
источник