Gutenberg(ブロックエディタ)を無効化するプラグインとして、以前Disable GutenbergやClassic Editorを紹介しましたが、今回はプラグインを使わずにGutenbergを無効化する方法をご紹介いたします。
※2018/12/08追記
元々紹介していたフィルターフックの「gutenberg_can_edit_post_type」が、WordPress5.0のリリースによって「use_block_editor_for_post」と「use_block_editor_for_post_type」に変更になったため、コードの内容を編集しました。
元々紹介していたフィルターフックの「gutenberg_can_edit_post_type」が、WordPress5.0のリリースによって「use_block_editor_for_post」と「use_block_editor_for_post_type」に変更になったため、コードの内容を編集しました。
プラグインを使わずにGutenbergを無効化する方法
すべての投稿エディターで無効化する
すべての投稿エディターでGutenbergを無効にするには、functions.phpに以下のコードを追加します。
add_filter('use_block_editor_for_post', '__return_false');
上記を追加することで、Gutenbergがすべての投稿エディターで無効化されます。
特定の投稿タイプでのみ無効化する
特定の投稿タイプでのみ無効化したい場合は、以下のように投稿タイプ名を指定してあげます。
function my_disable_gutenberg( $use_block_editor, $post_type ) { if ( $post_type === 'news' ) { return false; } return $use_block_editor; } add_filter( 'use_block_editor_for_post_type', 'my_disable_gutenberg', 10, 2 );
上記の場合、”news”という投稿タイプでのみGutenbergが無効化されます。投稿タイプ名のところを自サイトに合わせて変更してください。
投稿タイプの追加時に無効化する
投稿タイプをfunctions.phpで追加している場合は、”show_in_rest”をfalseに指定することで、Gutenbergを無効化できます。
function add_custom_post_type() { $args = array( 'label' => 'ニュース', 'hierarchical' => false, 'public' => true, 'menu_position' => 5, 'has_archive' => true, 'show_in_rest' => false, //これを追加 'supports' => array( 'title', 'editor', 'thumbnail' ) ); register_post_type( 'news', $args ); } add_action( 'init', 'add_custom_post_type' );
「’show_in_rest’ => false」を追加した投稿タイプでは、Gutenbergが無効化されます。
あとがき
Gutenberg導入の準備が整っていないサイトでは、一旦無効化しておくと良いですね。プラグインを使いたくない場合は、上述した方法をお試しください。