WordPress Gutenberg-Blöcke: Wie man Blöcke auf Seitenebene einschränkt, aber alle Blöcke auf untergeordneter Ebene zulässt

Lesezeit: 1 Minute

In einem WordPress-Plugin habe ich einige benutzerdefinierte „Layout“-Gutenberg-Blöcke erstellt. Dies sind im Grunde “Boxen”, die den Rest des Seiteninhalts enthalten. Ich möchte den Benutzer darauf beschränken, nur diese Felder zu einer Seite hinzuzufügen, sie dann aber platzieren zu lassen IRGENDEIN untergeordnete Blöcke in ihnen.

ich habe gefunden wie man Gutenburg-Blöcke einschränkt Verwendung der allowed_block_types Filter. Dies funktioniert, um den Benutzer nur darauf zu beschränken, einer Seite „Boxen“ hinzuzufügen.

Ich habe dann herausgefunden, wie man einen Gutenberg-Block darauf beschränkt, nur bestimmte untergeordnete Blöcke zuzulassen. dh auf InnerBlocks, angeben allowedBlocks: ['core/paragraph','core/list','core/seperator',...] damit die ‘Boxen’ diese untergeordneten Blöcke enthalten können.

Das Problem ist, dass der Allowed_Block_Type-Filter die AllowedBlocks zu überschreiben scheint.

Wie kann ich bestimmte Blöcke auf der „Seiten“-Ebene und andere auf der „untergeordneten“ Ebene zulassen?

Benutzer-Avatar
Welcher

Crossposting von meiner Antwort auf WordPress StackExchange

Die kurze Antwort ist, dass Sie es nicht können. Sie können dies jedoch erreichen, indem Sie eine Blockvorlage verwenden, die nur Ihren Block enthält und gesperrt ist. Wenn Ihr Block eine InnerBlocks-Instanz hat, können Sie jeden der registrierten Blöcke hinzufügen.

add_action( 'init', 'insert_template' );
function insert_template() {
    $post_type_object = get_post_type_object( 'post' );
    $post_type_object->template =[ [ 'your-custom-block-name'] ];
    $post_type_object->template_lock = 'all';
}

1386040cookie-checkWordPress Gutenberg-Blöcke: Wie man Blöcke auf Seitenebene einschränkt, aber alle Blöcke auf untergeordneter Ebene zulässt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy