Selectively Enable Gutenberg
Last updated 8 months ago
Disable Gutenberg by default
// 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);
Enable Gutenberg for any Post IDs
function shapeSpace_enable_gutenberg_post_ids($can_edit, $post) {
if (empty($post->ID)) return $can_edit;
if (1 === $post->ID) return true;
return $can_edit;
}
// Enable Gutenberg for WP < 5.0 beta
add_filter('gutenberg_can_edit_post', 'shapeSpace_enable_gutenberg_post_ids', 10, 2);
// Enable Gutenberg for WordPress >= 5.0
add_filter('use_block_editor_for_post', 'shapeSpace_enable_gutenberg_post_ids', 10, 2);
Enable Gutenberg for new posts
function shapeSpace_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;
}
// Enable Gutenberg for WP < 5.0 beta
add_filter('gutenberg_can_edit_post', 'shapeSpace_enable_gutenberg_new_posts', 10, 2);
// Enable Gutenberg for WordPress >= 5.0
add_filter('use_block_editor_for_post', 'shapeSpace_enable_gutenberg_new_posts', 10, 2);
Enable Gutenberg for specific Post Meta
function shapeSpace_enable_gutenberg_post_meta($can_edit, $post) {
if (empty($post->ID)) return $can_edit;
if ('Happy' === get_post_meta($post->ID, 'current_mood', true)) return true;
return $can_edit;
}
// Enable Gutenberg for WP < 5.0 beta
add_filter('gutenberg_can_edit_post', 'shapeSpace_enable_gutenberg_post_meta', 10, 2);
// Enable Gutenberg for WordPress >= 5.0
add_filter('use_block_editor_for_post', 'shapeSpace_enable_gutenberg_post_meta', 10, 2);
Enable Gutenberg for specific categories
function shapeSpace_enable_gutenberg_post_cats($can_edit, $post) {
if (empty($post->ID)) return $can_edit;
if (has_category(12)) return true;
return $can_edit;
}
// Enable Gutenberg for WP < 5.0 beta
add_filter('gutenberg_can_edit_post', 'shapeSpace_enable_gutenberg_post_cats', 10, 2);
// Enable Gutenberg for WordPress >= 5.0
add_filter('use_block_editor_for_post', 'shapeSpace_enable_gutenberg_post_cats', 10, 2);
Enable Gutenberg for specific tags
function shapeSpace_enable_gutenberg_post_tags($can_edit, $post) {
if (empty($post->ID)) return $can_edit;
if (has_tag(50)) return true;
return $can_edit;
}
// Enable Gutenberg for WP < 5.0 beta
add_filter('gutenberg_can_edit_post', 'shapeSpace_enable_gutenberg_post_tags', 10, 2);
// Enable Gutenberg for WordPress >= 5.0
add_filter('use_block_editor_for_post', 'shapeSpace_enable_gutenberg_post_tags', 10, 2);
Enable Gutenberg for any Post Type
function shapeSpace_enable_gutenberg_post_type($can_edit, $post) {
if (empty($post->ID)) return $can_edit;
if ('books' === $post_type) return true;
return $can_edit;
}
// Enable Gutenberg for WP < 5.0 beta
add_filter('gutenberg_can_edit_post_type', 'shapeSpace_enable_gutenberg_post_type', 10, 2);
// Enable Gutenberg for WordPress >= 5.0
add_filter('use_block_editor_for_post_type', 'shapeSpace_enable_gutenberg_post_type', 10, 2);
All code snippets are licensed GPLv2 or later unless otherwise stated.