Apakah mungkin untuk menghapus WYSIWYG untuk Jenis Posting Kustom tertentu?

18

Saya tidak ingin menggunakan WYSIWYG di bagian atas Jenis Posting Kustom saya. Saya ingin menggunakan bidang teks khusus yang bisa saya tempatkan di bagian bawah daftar bidang kustom saya.

Apakah ini mungkin?

scottgemmell
sumber

Jawaban:

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

letakkan ke tema Anda functions.php

Oleg Butuzov
sumber
1
Catatan: Saya akan merekomendasikan panggilan remove_post_type_support()di dalam panggilan balik yang sama yang Anda panggil register_post_type(), untuk memastikan urutan eksekusi yang tepat.
Chip Bennett
Saya tidak melihat register_post_type () di functions.php. Saya menggunakan UI Jenis Khusus dalam kombo dengan AdvancedCustomFields.
scottgemmell
Bahwa Anda menggunakan Plugin UI Custom Post Types adalah detail yang cukup penting untuk pertanyaan Anda. :) Plugin memperlihatkan supportsparameter dalam UI-nya. Lihat screenshot ini .
Chip Bennett
14

Anda sebenarnya dapat menonaktifkan editor WYSIWYG, hanya menyisakan editor sumber html. Pilih fungsi di bawah ini:

// 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;
});
pengguna188421
sumber
adakah cara untuk hanya menghapus WYSIWYG dari kutipan? Tema saya sudah dihidupkan, dan saya ragu tentang beberapa kode mereka, saya tidak yakin saya bisa menghapusnya. Saya mengajukan ini sebagai pertanyaan baru di sini: wordpress.stackexchange.com/questions/300877/…
Jason
Hai, jujur, saya tidak tahu, pengetahuan WP saya agak berkarat, maaf. Satu-satunya hal yang dapat saya sarankan adalah menggali kode sumber WP, menemukan sesuatu yang relevan, kemudian duckduckgo / google untuk dokumentasi / contoh.
user188421
9

Atau, Anda dapat menangani dukungan post-editor secara langsung dalam register_post_type()panggilan Anda , melalui 'supports'parameter dalam $argsarray.

Nilai default adalah: 'supports' => array( 'title', 'editor' ).

Anda dapat mengubahnya ke apa pun yang Anda butuhkan; misalnya: 'supports' => array( 'title' ).

Chip Bennett
sumber
6

Re: komentar ini:

Saya menggunakan UI Jenis Khusus dalam kombo dengan AdvancedCustomFields.

The Jenis Kustom Pasang UI Plugin mengekspos semua register_post_type() $argsparameter array dalam UI.

Dalam hal ini, Anda hanya perlu menemukan bagian Dukungan , dan nonaktifkan / hapus centang Editor :

Plugin UI Jenis Posting Kustom - Mendaftar opsi Jenis Posting

Chip Bennett
sumber
Meskipun jawaban lain ditetapkan sebagai jawaban yang dipilih, ini adalah jawaban yang benar. Tidak perlu menjalankan filter untuk menghapus sesuatu yang bisa Anda kecualikan saat mendeklarasikan CPT sebagai permulaan.
butlerblog
-1

Cara lain yang lebih konsisten untuk menonaktifkan editor WYSIWYG, hanya menyisakan editor sumber html - adalah dengan melarang tinymce menggunakan filter "wp_editor_settings" untuk jenis posting kustom Anda.

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' );
Валерия Олейник
sumber
Harap edit jawaban Anda , dan tambahkan penjelasan: mengapa itu bisa menyelesaikan masalah?
fuxia