В предыдущих публикациях мы обсуждали метод полного отключения редактора Gutenberg. Но возникают ситуации, когда нужно активировать его для отдельных частей сайта, таких как отдельные записи, категории, теги или определённые виды записей.
Далее необходимо будет внести изменения в файл functions.php, который является основным с файлом конфигурации вашей темы WordPress. Если вы не уверены в своих навыках редактирования, упростить процесс вам поможет плагин ProFunctions.
С выходом WordPress 5.0 редактор Gutenberg включен по умолчанию. Поэтому, чтобы использовать его частично, надо сначала полностью отключить. Для этого нужно добавить следующий код:
// WP < 5.0 beta add_filter( 'gutenberg_can_edit_post', '__return_false', 5 ); // WP >= 5.0 add_filter( 'use_block_editor_for_post', '__return_false', 5 );
После того, как редактор Gutenberg был отключен, можно использовать несколько способов для его активации в определённых разделах. Например, можно использовать условные конструкции, чтобы включить Gutenberg для конкретных типов записей или таксономий. Это делается с помощью функции add_filter, которая позволяет определить условия, при которых редактор будет активирован.
add_filter( 'use_block_editor_for_post', 'my_custom_block_editor', 10, 2 ); function my_custom_block_editor( $can_edit, $post ) { if ( 'your_post_type' === $post->post_type ) { return true; } return $can_edit; }
В этом примере замените your_post_type на название вашего типа записи, для которого хочется использовать Gutenberg. Аналогично, можно расширить функционал и для конкретных категорий или тегов, используя соответствующие условия.
Не забывайте, что для обеспечения правильной работы вашего сайта и избежания возможных конфликтов лучше проводить тестирование на локальной среде или staging-сайте, прежде чем вносить изменения на рабочий ресурс.
Если вам нужно включить Gutenberg для нескольких таксономий одновременно, можно использовать массив условий.
add_filter( 'use_block_editor_for_post', 'my_custom_block_editor', 10, 2 ); function my_custom_block_editor( $can_edit, $post ) { $allowed_types = array( 'your_post_type_1', 'your_post_type_2' ); if ( in_array( $post->post_type, $allowed_types ) ) { return true; } return $can_edit; }
Таким образом, вы можете легко настроить, где именно должна активироваться функциональность редактора Gutenberg, обеспечивая необходимую гибкость в управлении содержимым вашего сайта.
Как включить Gutenberg для конкретных ID записей?
function site_enable_gutenberg_post_ids( $can_edit, $post ) { if ( empty( $post->ID ) ) return $can_edit; if ( 1 === $post->ID ) return true; return $can_edit; } // Включить Gutenberg для WP < 5.0 beta add_filter( 'gutenberg_can_edit_post', 'site_enable_gutenberg_post_ids', 10, 2 ); // Включить Gutenberg для WordPress >= 5.0 add_filter( 'use_block_editor_for_post', 'site_enable_gutenberg_post_ids', 10, 2 );
Этот код активирует новый редактор для записи с уникальным идентификатором (ID) равным 1. Вы можете изменить это значение на подходящее для вас. Кроме того, если вам нужно включить редактор Gutenberg для нескольких записей, вы можете изменить условие, используя массив ID, например:
if ( in_array( $post->ID, array( 1, 2, 3 ) ) ) return true;
Также рекомендуется добавить проверку на тип записи, чтобы гарантировать, что Gutenberg будет активирован только для определённых типов записей:
if ( 'post' === $post->post_type ) { /* ваш код */ }
Не забудьте протестировать функциональность после внесения изменений, особенно если у вас уже есть установленные плагины, которые могут конфликтовать с новым редактором. В случае необходимости, можно использовать дополнительные фильтры для более точной настройки работы редактора. Это позволит вам добиться нужного поведения в кастомизированных версиях вашего WordPress-сайта.
Как включить Gutenberg для новых записей?
Чтобы по умолчанию при добавлении новых записей (Записи -> Добавить новую) открывался редактор Gutenberg, используются следующие строки:
function site_enable_gutenberg_new_posts( $can_edit, $post ) {
if ( empty( $post->ID ) ) return $can_edit;
$current = get_current_screen();
if ( 'post' === $current->base && 'add' === $current->action ) return true;
return $can_edit;
}
// Включить Gutenberg для WP < 5.0 beta
add_filter( 'gutenberg_can_edit_post', 'site_enable_gutenberg_new_posts', 10, 2 );
// Включить Gutenberg для WordPress >= 5.0
add_filter( 'use_block_editor_for_post', 'site_enable_gutenberg_new_posts', 10, 2 );
Этот код можно добавить в файл functions.php вашей темы. Обязательно создайте резервную копию этого файла перед внесением изменений. Если вы хотите вернуть классический редактор, вам необходимо удалить или закомментировать добавленный код.
Также стоит отметить, что Gutenberg, будучи редактором на основе блоков, открывает широкие возможности для создания многофункционального контента, так что изучение его возможностей будет полезным для оптимизации ваших записей. Вы можете создавать макеты страниц, добавлять интерактивные элементы, а также использовать различные профессиональные блоки, доступные через плагины и дополнения.
Убедитесь, что ваша версия WordPress обновлена, так как более старые версии могут не поддерживать данный функционал. В случае возникновения проблем с производительностью после активирования Gutenberg, рассмотрите возможность отключения ненужных плагинов или обратитесь к документации для устранения неполадок.
Как включить Gutenberg для конкретных метаданных записей?
Для проверки наличия пользовательского поля можно использовать такой код:
function site_enable_gutenberg_post_meta( $can_edit, $post ) {
if ( empty( $post->ID ) ) return $can_edit;
if ( '21' === get_post_meta( $post->ID, 'human_age', true ) ) return true;
return $can_edit;
}
// Включить Gutenberg для WP < 5.0 beta
add_filter( 'gutenberg_can_edit_post', 'site_enable_gutenberg_post_meta', 10, 2 );
// Включить Gutenberg для WordPress >= 5.0
add_filter( 'use_block_editor_for_post', 'site_enable_gutenberg_post_meta', 10, 2 );
В данном коде делается проверка на наличие произвольного поля human_age со значением 21. Если условие выполнено, то будет активирован редактор Gutenberg.
Обратите внимание, что этот код следует добавлять в файл functions.php вашей темы или в виде отдельного плагина. Убедитесь, что вы делаете резервные копии перед внесением изменений, чтобы избежать потери данных или функционала сайта.
Также полезно помнить, что можно настраивать другие метаданные, изменяя условие в функции. Например, вы можете проверять значения других пользовательских полей или использовать разные условия для включения редактора Gutenberg для различных типов записей.
Если вы хотите, чтобы Gutenberg был включен для более сложных проверок, рассмотрите возможность использования дополнительных фильтров и хуков, предоставленных WordPress.
Наконец, протестируйте внесенные изменения на локальном или тестовом сайте перед запуском на живом проекте, чтобы быть уверенным в корректной работе редактора.
Как включить Gutenberg для конкретных категорий записей?
Также можно включить новый редактор для записи в зависимости от категории.
function site_enable_gutenberg_post_cats( $can_edit, $post ) { if ( empty( $post->ID ) ) return $can_edit; if ( has_category( 45 ) ) return true; return $can_edit; } // Включить Gutenberg для WP < 5.0 beta add_filter( 'gutenberg_can_edit_post', 'site_enable_gutenberg_post_cats', 10, 2 ); // Включить Gutenberg для WordPress >= 5.0 add_filter( 'use_block_editor_for_post', 'site_enable_gutenberg_post_cats', 10, 2 );
В этом коде используется функция WordPress has_category(), которая определяет, принадлежит ли текущая запись к категории с идентификатором 45.
Вы можете изменить идентификатор категории на любой другой, в зависимости от ваших потребностей. Например, если вы хотите разрешить редактирование с помощью Gutenberg для категории с идентификатором 10, просто замените 45 на 10 в условии.
Также стоит учитывать, что если вам нужно включить Gutenberg для нескольких категорий, вы можете использовать функцию has_any_category(), которая позволяет указывать массив идентификаторов категорий. Например:
if ( has_any_category( array( 10, 20, 30 ) ) ) return true;
После изменения кода не забудьте протестировать, все ли работает правильно для записей из указанных категорий. Также рекомендуется делать резервные копии файлов перед их изменением и использовать дочерние темы для внесения таких изменений.
Таким образом, вы сможете гибко управлять редактором записей, в зависимости от категории, что может быть полезно для различных типов контента на вашем сайте.
Как включить Gutenberg для конкретных тегов?
Можно также настроить включение Gutenberg для записей по тегам.
function site_enable_gutenberg_post_tags( $can_edit, $post ) < if ( empty( $post->ID ) ) return $can_edit; if ( has_tag( 15 ) ) return true; return $can_edit; > // Включить Gutenberg для WP < 5.0 beta add_filter( 'gutenberg_can_edit_post', 'site_enable_gutenberg_post_tags', 10, 2 ); // Включить Gutenberg для WordPress >= 5.0 add_filter( 'use_block_editor_for_post', 'site_enable_gutenberg_post_tags', 10, 2 );
В этом коде используется функция has_tag(), которая проверяет, принадлежит ли запись к метке с ID равным 15.
Как включить Gutenberg для определенных типов записей?
Если на вашем сайте используются пользовательские типы записей, вы также можете включить редактор Gutenberg для них.
function site_enable_gutenberg_post_type( $can_edit, $post ) < if ( empty( $post->ID ) ) return $can_edit; if ( 'music' === $post_type ) return true; return $can_edit; > // Включить Gutenberg для WP < 5.0 beta add_filter( 'gutenberg_can_edit_post_type', 'site_enable_gutenberg_post_type', 10, 2 ); // Включить Gutenberg для WordPress >= 5.0 add_filter( 'use_block_editor_for_post_type', 'site_enable_gutenberg_post_type', 10, 2 );
В данном коде проверяется, принадлежит ли текущая запись к типу music. Если это так, новый редактор будет активирован. Необходимо лишь изменить название типа на нужное вам.