もうWordPress 5.0がリリースされたので、Beforeでもなんでもなくなってしまったが、連載タイトルを変えるわけにはいかないので、そのままにする。WordPress 5.0からGutenbergことブロック・エディターがデビューとなったのだが、まだ対応が終わっていない方も多いだろう。そこで、今回は特定の投稿タイプおよび投稿だけクラシックエディターにする方法を紹介する。
Classic Editorプラグインは何をしているのか
さて、Classic Editorプラグインを入れておこうというアドバイスを以前お伝えしたが、実はニュースをお伝えした当初と異なり、現在のClassic Editorは非常に薄いプラグインとなっている。何をしているかというと、ブロックエディターのオン・オフを切り替えているだけなのだ。
筆者はてっきり以前のエディターをClassic Editorに移植して取り除いたのかと思っていたが、そんなことはぜんぜんなかった。途中から方針が変わったように思うので、おそらく後方互換性を保つ意味でもしばらくは残るだろう。
まとめると、前言撤回のようで非常に心苦しいのだが、ある程度開発経験がある方は別にClassic Editorを入れなくてもいいんじゃない……のかな……。実際、筆者は試しにWooCommerceサイトをWordPress 5.0にアップデートしてみたのだが、WooCommerce側で対応済みのようだった。
特定の投稿タイプだけをクラシックエディターにする
それではさっそくやってみよう。まず、FAQというカスタム投稿タイプがまだ微妙にブロックエディターに対応できていないとする。投稿も固定ページも問題ないのだが、FAQだけダメなケースだ。
この場合、use_block_editor_for_post
フィルターを利用すればよい。
add_filter( 'use_block_editor_for_post', function( $use_block_editor, $post ) { if ( 'faq' === $post->post_type ) { $use_block_editor = false; } return $use_block_editor; }, 10, 2 );
特定の投稿だけクラシックエディターを使いたい
さて、たとえばニュースサイトのようなものを運用しており、「新規に投稿する分には問題ないが、古い投稿はクラシックエディターを使いたい」というケースを考えてみよう。たとえば、投稿IDが3,000より古いとか、そのような条件が適用できる。
add_filter( 'use_block_editor_for_post', function( $use_block_editor, $post ) { if ( 3000 >= $post->ID ) { // 3000以下ならfalse $use_block_editor = false; } return $use_block_editor; }, 10, 2 );
タクソノミーなどなど、色々な条件が考えられる。
*
クラシックエディターはデフォルトでブロックエディターのオン・オフを行ってくれるが、カスタマイズを施したサイトだと、たくさんのカスタム投稿タイプがあったりするだろう。上記のフィルターを有効に活用し、楽しいWordPress編集ライフを送って欲しい。
“Before Gutenberg – 投稿別に既存のエディターを有効にする”への1件の反応
サンプルコードにタイポがあったので修正しておきました。