WordPress Block Editor (Gutenberg) für Custom Post Types aktivieren

Seit WordPress 5.0 ist der Block Editor (Gutenberg) der Standard-Editor für Beiträge und Seiten in WordPress. Die Umstellung vom alten WYSIWYG-Editor (TinyMCE) erfolgte mit dem Update auf WordPress 5.0 für diese Beitrags-Typen automatisch. Selbst erstellte Beitrags-Typen (Custom Post Types) nutzen jedoch nicht automatisch den neuen Editor.
Workshops & Schulungen von kulturbanause
Intensive Trainings mit hohem Praxisbezug.
Block Editor für eigene Custom Post Types aktivieren
Über »register_post_type()
« könnt ihr eure eigenen Custom Post Types anlegen. Möchtet ihr nun den Block Editor (Gutenberg) für diesen Beitrags-Typen verwenden, achtet darauf, dass ihr in den Argumenten »$args
« die Angabe »show_in_rest
« auf true
setzt. Damit wird dieser Beitrags-Typ in der Rest-API von WordPress mit berücksichtigt, was ausschlaggebend dafür ist, dass der Block Editor arbeiten kann. Der Block Editor wird nun für diesen Beitrags-Typen verwendet. Wenn Gutenberg deaktiviert sein soll, setzt den Wert auf false
.
function kb_custom_post_type() {
...
$args = array(
...
'show_in_rest' => true,
...
);
register_post_type( 'YOUR-CUSTOM-POST-TYPE', $args );
}
add_action( 'init', 'kb_custom_post_type', 0 );
Block Editor für Custom Post Types aus Plugins aktivieren
Viele WordPress-Plugins liefern eigene Custom Post Types, in denen ihr nicht über register_post_type()
die Argumente verändern könnt, um die Update-Fähigkeit der Plugins nicht einzuschränken. Um auch für diese Beitrags-Typen den Block Editor zu aktivieren, könnt ihr den Filter »use_block_editor_for_post_type
« verwenden. Das folgende Snippet könnt ihr einfach in die functions.php
oder in ein seitenspezifisches Plugin schreiben und mit dem Namen eures Beitrags-Typen versehen. Im Beispiel aktivieren wir den Block Editor (Gutenberg) für die Produkte eines WooCommerce-Shops.
function kb_activate_block_editor($can_edit, $post_type){
if($post_type == 'product'){
$can_edit = true;
}
return $can_edit;
}
add_filter('use_block_editor_for_post_type', 'kb_activate_block_editor', 10, 2);
Jetzt bist du gefragt!
Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.
Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!
Unterstützung bei WordPress-Projekten
Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →
Das könnte dich auch interessieren
5 Kommentare
Kommentar verfassen
Drivingralle
Verfasst am 27. Januar 2020 um 13:12 Uhr.
Nicht alle CPTs sind für die Öffentlichkeit bestimmt sollen aber trotzdem mittels Gutenberg bearbeitet werden.
Wenn der CPT also nur für Benutzer mit den Rechten zum bearbeiten in der REST-API verfügbar sein soll kann man dies über eine Bedingung beim Registrieren erreichen z.B.:
’show_in_rest‘ => current_user_can( ‚edit_posts‘ ),
Wobei „edit_posts“ natürlich auf die eigenen Berechtigungen angepasst werden muss.
Es grüßt
derRALF
Wolfgang
Verfasst am 26. Februar 2020 um 17:33 Uhr.
Hallo Robert,
das hat bei mir leider nicht geklappt: Ich versuche es mit „el_events“ (Das ist der CPT „Event List“ von mibuthu.) und folgendem Code:
add_action(‚pre_get_posts‘,’kb_add_post_types_to_loop‘);
// Gutenberg um custom post type erweitern
function kb_activate_block_editor($can_edit, $post_type){
if($post_type == ‚el_events‘){
$can_edit = true;
}
return $can_edit;
}
add_filter(‚use_block_editor_for_post_type‘, ‚kb_activate_block_editor‘, 10, 2);
Kann es sein, dass das Verfahren nicht bei allen CPTs funktioniert?
Robert Menzel
Verfasst am 27. Februar 2020 um 16:06 Uhr.
Hallo Wolfgang,
ich habe leider keine Erfahrungen mit dem »Event List«-Plugin und kann daher nicht einschätzen ob es mit dem Gutenberg kompatibel ist.
Eventuell kann eine Veränderung der Priorität im Filter weiterhelfen: add_filter(‚use_block_editor_for_post_type‘, ‚kb_activate_block_editor‘, 999, 2);
Viele Grüße
Robert
Tommy
Verfasst am 9. Dezember 2020 um 14:30 Uhr.
Wir nutzen ein Theme welches angeblich Gutenberg ready sein soll. Bei dem default post Menü sehen wir Gutenberg. Soweit alles bestens also. Bei dem Menü „Recipe Posts“ (wird vom Theme durch das Core Plugin angelegt) ist allerdings nur der Classic Editor sichtbar. Taxonomie ist „recipe“.
Wir haben deshalb folgendes ausprobiert:
function kb_activate_block_editor($can_edit, $post_type){
if($post_type == ‚recipe‘){
$can_edit = true;
}
return $can_edit;
}
add_filter(‚use_block_editor_for_post_type‘, ‚kb_activate_block_editor‘, 10, 2);
Wir haben die Prio auch mal auf 99999 gesetzt, ohne Erfolg. Hast du eine Idee wo wir ansetzen können? Die Entwickler vom Theme drücken sich leider.
Robert Menzel
Verfasst am 10. Dezember 2020 um 9:25 Uhr.
Hallo Tommy,
in der if-Abfrage innerhalb der Funktion muss der Name des Custom Post Types angegeben werden und nicht der Name der Taxonomie.
Sollte es dann immer noch nicht funktionieren, liegt es mit Sicherheit am Theme. Hier kann ich dann leider keine konkrete Auskunft geben.
Viele Grüße
Robert