Czy można usunąć WYSIWYG dla określonego niestandardowego typu postu?

18

Nie chcę używać WYSIWYG na górze mojego niestandardowego typu postu. Chcę użyć niestandardowego pola tekstowego, które zamiast tego mogę umieścić na dole mojej listy pól niestandardowych.

czy to możliwe?

scottgemmell
źródło

Odpowiedzi:

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

umieść go w swoich motywach functions.php

Oleg Butuzow
źródło
1
Uwaga: Polecam wywoływanie remove_post_type_support()w ramach tego samego wywołania zwrotnego register_post_type(), aby zapewnić prawidłową kolejność wykonywania.
Chip Bennett,
Nie widzę register_post_type () w functions.php. Używam niestandardowego interfejsu użytkownika w kombinacji z AdvancedCustomFields.
scottgemmell
To, że używasz wtyczki interfejsu użytkownika niestandardowych typów postów, jest dość ważnym szczegółem twojego pytania. :) Wtyczka udostępnia supportsparametr w interfejsie użytkownika. Zapoznaj się z tymi zrzutami ekranu .
Chip Bennett,
14

Możesz faktycznie wyłączyć edytor WYSIWYG, pozostawiając tylko edytor źródłowy HTML. Wybierz funkcję poniżej:

// 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;
});
użytkownik188421
źródło
czy istnieje sposób, aby usunąć tylko WYSIWYG z fragmentu? Mój motyw ma go włączony i wątpię w niektóre jego kody, nie jestem pewien, czy mogę je usunąć. Zadałem to jako nowe pytanie tutaj: wordpress.stackexchange.com/questions/300877/…
Jason
Cześć, szczerze mówiąc, nie wiem, moja wiedza na temat WP jest trochę zardzewiała, przepraszam. Jedyne, co mogę zasugerować, to zagłębić się w kod źródłowy WP, znaleźć coś odpowiedniego, a następnie duckduckgo / google to w celu uzyskania dokumentacji / przykładów.
user188421
9

Alternatywnie możesz obsługiwać obsługę post-edytora bezpośrednio w swoim register_post_type()wywołaniu, za pomocą 'supports'parametru w $argstablicy.

Domyślną wartością jest: 'supports' => array( 'title', 'editor' ).

Możesz zmienić to, czego potrzebujesz; na przykład: 'supports' => array( 'title' ).

Chip Bennett
źródło
6

Odp: ten komentarz:

Używam niestandardowego interfejsu użytkownika w kombinacji z AdvancedCustomFields.

Typy niestandardowe post UI Plugin naraża wszystkich register_post_type() $argsparametrów tablicowych w jego interfejsie.

W takim przypadku wystarczy po prostu znaleźć sekcję Wsparcie i wyłączyć / odznaczyć Edytor :

Wtyczka interfejsu użytkownika niestandardowych typów postów - opcje rejestracji typu postu

Chip Bennett
źródło
Mimo że jako odpowiedź wybrano inną odpowiedź, jest to poprawna odpowiedź. Nie trzeba uruchamiać filtra, aby usunąć coś, co można po prostu wykluczyć, deklarując początek CPT.
butlerblog
-1

Innym, bardziej spójnym sposobem wyłączenia edytora WYSIWYG, pozostawiając tylko edytor źródłowy HTML - jest wyłączenie tinymce przy użyciu filtra „wp_editor_settings” dla niestandardowego typu postu.

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' );
Валерия Олейник
źródło
Proszę edytować swoje odpowiedzi i dodać wyjaśnienie: dlaczego to może rozwiązać problem?
fuxia