クラシックブロックを初期配置する (読了想定)

WordPressユーザーのためのPHP入門 はじめから、ていねいに。第3版 p229-231 で解説しているように、グーテンベルクではブロックを初期配置することができます。 この機能を使って、クラシックエディタを初期配置してみます。

クラシックエディタを初期配置

クラシックブロックを初期配置するコード

グーテンベルクにはクラシックブロックがあります。(WordPress4.9までのエディタをクラシックエディタと呼びます。)これを初期配置してみます。

function php4wordpress_template() {
    $post_type_object = get_post_type_object( 'post' );
    $post_type_object->template = [
        [ 'core/freeform' ],
    ];
}
add_action( 'init', 'php4wordpress_template' );

ブロック一覧にあるように、クラシックブロックはcore/freeformなので、クラシックブロックを新規投稿時に配置済みにしておきます。

ブロックの追加・削除を制限する

ブロックは初期配置するだけでなく、追加・削除を制限することが出来ます。

$post_type_object->template_lock = "all";

と記述すれば、ブロック追加・並べ替えを不可に設定できます。

また、

$post_type_object->template_lock = "insert";

と記述すれば、ブロック追加は許可しないが、並べ替えは許可します。

クラシックエディタを初期配置し、ブロックの追加・削除・並べ替えを不可にするコード例

function php4wordpress_template() {
    $post_type_object = get_post_type_object( 'post' );
    $post_type_object->template = [
        [ 'core/freeform' ],
    ];
    $post_type_object->template_lock = "all";
}
add_action( 'init', 'php4wordpress_template' );

このように設定しておくと、グーテンベルクで実質的にクラシックエディタのみ使用可能、にできます。