Ist es möglich, WYSIWYG für einen bestimmten benutzerdefinierten Beitragstyp zu entfernen?

18

Ich möchte das WYSIWYG nicht oben in meinem benutzerdefinierten Beitragstyp verwenden. Ich möchte einen benutzerdefinierten Feldtextbereich verwenden, den ich stattdessen am Ende meiner Liste benutzerdefinierter Felder platzieren kann.

Ist das möglich?

scottgemmell
quelle

Antworten:

20
add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'your post type';
    remove_post_type_support( $post_type, 'editor');
}

platziere es in deine themes functions.php

Oleg Butuzov
quelle
1
Hinweis: Ich würde empfehlen, remove_post_type_support()innerhalb desselben Rückrufs aufzurufen register_post_type(), den Sie aufrufen , um eine ordnungsgemäße Ausführungsreihenfolge sicherzustellen.
Chip Bennett
Ich sehe register_post_type () nicht in functions.php. Ich verwende die Benutzeroberfläche für benutzerdefinierte Typen in Kombination mit AdvancedCustomFields.
Scottgemmell
Dass Sie das UI-Plugin für benutzerdefinierte Beitragstypen verwenden, ist ein ziemlich wichtiges Detail Ihrer Frage. :) Das Plugin macht den supportsParameter in seiner Benutzeroberfläche verfügbar. Beziehen Sie sich auf diese Screenshots .
Chip Bennett
14

Sie können den WYSIWYG-Editor tatsächlich deaktivieren und nur den HTML-Quellcode-Editor belassen. Wählen Sie eine der folgenden Funktionen:

// disable wyswyg for custom post type, using the global $post
add_filter('user_can_richedit', function( $default ){
  global $post;
  if( $post->post_type === 'product')  return false;
  return $default;
});

// disable wyswyg for custom post type, using get_post_type() function
add_filter('user_can_richedit', function( $default ){
  if( get_post_type() === 'product')  return false;
  return $default;
});
SE sei verdammt für Monicagate.
quelle
Gibt es eine Möglichkeit, nur das WYSIWYG aus dem Auszug zu entfernen? Mein Theme hat es aktiviert und ich bin mir nicht sicher, ob ich es entfernen kann. Ich habe dies hier als neue Frage gestellt: wordpress.stackexchange.com/questions/300877/…
Jason
Hallo, ehrlich gesagt, ich weiß nicht, mein WP-Wissen ist ein bisschen verrostet, sorry. Das Einzige, was ich vorschlagen kann, ist, in den WP-Quellcode zu graben, etwas Relevantes zu finden und dann mit duckduckgo / google nach Dokumentation / Beispielen zu suchen.
SE sei verdammt für Monicagate.
9

Alternativ können Sie die Post-Editor-Unterstützung direkt in Ihrem register_post_type()Aufruf über den 'supports'Parameter im $argsArray abwickeln .

Der Standardwert ist: 'supports' => array( 'title', 'editor' ).

Sie können es beliebig ändern. zum Beispiel: 'supports' => array( 'title' ).

Chip Bennett
quelle
6

Betreff: dieser Kommentar:

Ich verwende die Benutzeroberfläche für benutzerdefinierte Typen in Kombination mit AdvancedCustomFields.

Das UI-Plugin für benutzerdefinierte Post-Typen macht alle register_post_type() $argsArray-Parameter in seiner Benutzeroberfläche verfügbar.

In diesem Fall müssen Sie nur den Abschnitt Unterstützungen suchen und den Editor deaktivieren / deaktivieren :

Benutzerdefiniertes UI-Plugin für Beitragstypen - Optionen zum Registrieren von Beitragstypen

Chip Bennett
quelle
Obwohl eine andere Antwort als ausgewählte Antwort festgelegt wurde, ist dies die richtige Antwort. Es ist nicht erforderlich, einen Filter auszuführen, um etwas zu entfernen, das Sie einfach ausschließen können, wenn Sie das CPT deklarieren.
Butlerblog
-1

Eine andere, konsistentere Möglichkeit, den WYSIWYG-Editor zu deaktivieren, wobei nur der HTML-Quellcode-Editor übrig bleibt, besteht darin, die Verwendung des Filters "wp_editor_settings" für Ihren benutzerdefinierten Beitragstyp zu unterbinden.

function my_post_type_editor_settings( $settings ) {

    global $post_type;

    if ( $post_type == 'my_post_type' ) {

        $settings[ 'tinymce' ] = false;
    }

    return $settings;
}

add_filter( 'wp_editor_settings', 'my_post_type_editor_settings' );
Валерия Олейник
quelle
Bitte bearbeiten Sie Ihre Antwort und fügen Sie eine Erklärung hinzu: Warum könnte dies das Problem lösen?
fuxia