WordPressでブロックのロックを無効にする

最終更新日:

WordPressでブロックのロック機能を無効にする方法を紹介します。投稿、固定ページなど投稿タイプ、ユーザーの権限や特定のユーザーを指定して無効化することができます。

ブロックのロック機能とは?

ブロックのロック機能とは、WordPress 6.0から追加されたブロックの移動、ブロックの削除、またはその両方を無効にすることができる機能です。

ブロックをロック

WordPress 6.0で追加されたその他の新機能については以下の記事をご参照ください。

ブロックのロック機能を無効にする

ブロックのロック機能を使用しない場合、フィルターフックで無効化できます。

投稿のみ無効にする

投稿のみブロックのロック機能を無効化するには、以下のコードを有効化しているテーマのfunctions.phpに追加します。

add_filter(
    'block_editor_settings_all',
    function( $settings, $context ) {
        if ( $context->post && $context->post->post_type === 'post' ) {
            $settings['canLockBlocks'] = false;
        }
        return $settings;
    },
    10,
    2
);

固定ページのみ無効にする

固定ページのみブロックのロック機能を無効化するには、以下のコードを有効化しているテーマのfunctions.phpに追加します。

add_filter(
    'block_editor_settings_all',
    function( $settings, $context ) {
        if ( $context->post && $context->post->post_type === 'page' ) {
            $settings['canLockBlocks'] = false;
        }
        return $settings;
    },
    10,
    2
);

編集者未満のみ無効にする

編集者未満(購読者・寄稿者・投稿者)のみブロックのロック機能を無効化するには、以下のコードを有効化しているテーマのfunctions.phpに追加します。

add_filter(
    'block_editor_settings_all',
    function( $settings, $context ) {
        $settings['canLockBlocks'] = current_user_can( 'delete_others_posts' );
        return $settings;
    },
    10,
    2
);

特定のユーザーのみ無効にする

特定のユーザーのみブロックのロック機能を無効化するには、以下のコードを有効化しているテーマのfunctions.phpに追加します。

user@example.comにブロックのロック機能を無効化したいユーザーのメールアドレスを指定してください。

add_filter(
    'block_editor_settings_all',
    function( $settings, $context ) {
        $user = wp_get_current_user();
        if ( in_array( $user->user_email, [ 'user@example.com' ], true ) ) {
            $settings['canLockBlocks'] = false;
        }
        return $settings;
    },
    10,
    2
);
go to top