[WordPress] エディターに関する資料

Modified

『WordPress』のエディターについて。

投稿の編集にブロックエディターを許可しているか判定

投稿の編集に使用するエディターとしてブロックエディターを許可しているか判定する方法について。

use_block_editor_for_post()で許可状態を判定できる。

関数の戻り値がtrueの場合はブロックエディターの使用を許可している、falseの場合は許可していない、つまりクラシックエディターを使う事になる。

全てのブロックエディターを無効化

あらゆる場合においてブロックエディターを無効化する方法について。

次のフィルターフックを使う。

add_filter( 'use_block_editor_for_post', '__return_false' );

特定の投稿タイプでブロックエディターを無効化

特定の投稿タイプの場合にブロックエディターを無効化する方法について。

例として、標準の投稿においてブロックエディターを無効化するコードは次のようになる。

function disable_block_editor_for_post_type( $use_block_editor, $post_type ) {
	if( $post_type === 'post' ) {
		return false;
	}

	return $use_block_editor;
}
add_filter( 'use_block_editor_for_post_type', 'disable_block_editor_for_post_type', 10, 2 );

条件の部分を変更する事で、固定ページやカスタム投稿タイプにも対応可能。

特定の投稿でブロックエディターを無効化

特定の投稿の場合にブロックエディターを無効化する方法について。

次のフィルターフックを使う。

function disable_block_editor_for_post( $use_block_editor, $post ) {
	// 標準の投稿の時
	if( $post->post_type === 'post' ) {
		// 投稿IDが1の時
		if( $post->ID === 1 ) {
			return false;
		}

		// 投稿スラッグが『sample-post』の時
		if( $post->post_name === 'sample-post' ) {
			return false;
		}
	}

	return $use_block_editor;
}
add_filter( 'use_block_editor_for_post', 'disable_block_editor_for_post', 10, 2 );

条件の部分はWP_Postで取得できる値を使って自由に設定できる。

投稿の編集にビジュアルエディターを許可しているか判定

投稿の編集に使用するエディターでビジュアルエディターモードを許可しているか判定する方法について。

user_can_richedit()で許可状態を判定できる。

関数の戻り値がtrueの場合はビジュアルエディターモードの使用を許可している、falseの場合は許可していない、つまりコード(クラシックエディタはテキスト)エディターモードを使う事になる。

全てのビジュアルエディターを無効化

あらゆる場合においてビジュアルエディターを無効化する方法について。

次のフィルターフックを使う。

add_filter( 'user_can_richedit', '__return_false' );

特定の投稿でビジュアルエディターを無効化

特定の投稿の場合にビジュアルエディターを無効化する方法について。

次のフィルターフックを使う。

function disable_rich_editor_for_post( $wp_rich_edit ) {
	$current_screen = get_current_screen();

	// 固定ページの時
	if( $current_screen->id === 'page' ) {
		return false;
	}

	return $use_block_editor;
}
add_filter( 'user_can_richedit', 'disable_rich_editor_for_post', 10, 2 );