Benutzerdefinierte Block-Kategorie

s02 9981
fotografiert von Gabriele Lässer

Beim Einfügen von Blöcken befinden sich diese in verschiedenen Kategorien wie Design, Widgets, Embeds, oder auch von Plugins beigesteuerte Gruppen (und andersfarbigen Icons). Es bietet sich an, für eigene Blöcke eine eigene Kategorie anzulegen, z.B. „Child-Theme“, oder Name des eigenen Plugins.

/**
 * Creating a custom block category.
 * @param   array $categories - List of block categories.
 * @return  array
 */
function childtheme_new_block_category( $categories ) {
    $block_category = array( 'title' => esc_html__( 'My Custom Plugin', 'custom-plugin-textdomain' ), 'slug' => 'myplugin' );
    $category_slugs = wp_list_pluck( $categories, 'slug' );

    if ( ! in_array( $block_category['slug'], $category_slugs, true ) ) {
        $categories = array_merge(
            $categories,
            array(
                array(
                    'title' => $block_category['title'], // erforderlich
                    'slug'  => $block_category['slug'], // erforderlich
                    'icon'  => 'wordpress', // optional: Dashicon slug oder SVG
                ),
            )
        );
    }

    return $categories;
}
add_filter( 'block_categories', 'childtheme_new_block_category' );

Nachtrag August: Mit WordPress 5.8 (Tatum, erschienen am 20. Juli 2021) wird block_categories als deprecated angezeigt. stattdessen muss man block_categories_all verwenden.

/**
 * Creating a custom block category.
 * @param   array $categories - List of block categories.
 * @return  array
 */
function childtheme_new_block_category( $categories ) {
    $block_category = array( 'title' => esc_html__( 'My Custom Plugin', 'custom-plugin-textdomain' ), 'slug' => 'myplugin' );
    $category_slugs = wp_list_pluck( $categories, 'slug' );

    if ( ! in_array( $block_category['slug'], $category_slugs, true ) ) {
        $categories = array_merge(
             array(
                array(
                    'title' => $block_category['title'], // erforderlich
                    'slug'  => $block_category['slug'], // erforderlich
                    'icon'  => 'wordpress', // optional: Dashicon slug oder SVG
                ),
            ),
            $categories
       );
    }

    return $categories;
}
add_filter( 'block_categories_all', 'childtheme_new_block_category' );

Beispiel (in diesem steht die eigene Kategorie an 1. Stelle)

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable