特定のカスタム投稿タイプのWYSIWYGを削除することは可能ですか?


18

カスタム投稿タイプの上部でWYSIWYGを使用したくありません。代わりにカスタムフィールドのリストの一番下に配置できるカスタムフィールドテキストエリアを使用したいと思います。

これは可能ですか?

回答:


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

テーマのfunctions.phpに配置します


1
注:を呼び出すremove_post_type_support()のと同じコールバック内で呼び出すことをお勧めしますregister_post_type()。適切な実行順序を確保するためです。
チップベネット

functions.phpにregister_post_type()が表示されません。AdvancedCustomFieldsと組み合わせてカスタムタイプUIを使用しています。
スコットゲメル

カスタム投稿タイプUIプラグインを使用していることは、質問のかなり重要な詳細です。:)プラグインは、supportsUIでパラメーターを公開します。これらのスクリーンショットを参照してください
チップベネット

14

実際には、WYSIWYGエディターを無効にして、htmlソースエディターのみを残すことができます。以下の機能を選択してください。

// 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;
});

抜粋からWYSIWYGのみを削除する方法はありますか?私のテーマではそれが有効になっており、それらのコードの一部について疑っています。削除できるかどうかはわかりません。ここに新しい質問としてこれを尋ねました:wordpress.stackexchange.com/questions/300877/…–
ジェイソン

こんにちは、正直なところ、私は知りません、私のWPの知識は少しさびています、ごめんなさい。私が提案できる唯一のことは、WPのソースコードを掘り下げ、関連するものを見つけてから、duckduckgo / googleでドキュメント/サンプルを探すことです。
user188421

9

または、配列内のパラメーターを使用しregister_post_type()て、呼び出しでポストエディターのサポートを直接処理できます。'supports'$args

デフォルト値は次のとおり'supports' => array( 'title', 'editor' )です。

必要なものに変更できます。例:'supports' => array( 'title' )


6

再:このコメント:

AdvancedCustomFieldsと組み合わせてカスタムタイプUIを使用しています。

カスタムポストタイプのUIプラグインのすべて公開しregister_post_type() $args、そのUIでの配列パラメータを。

この場合、サポートセクションを見つけ、無効化/チェック解除するだけです。エディター

カスタム投稿タイプUIプラグイン-登録投稿タイプオプション


別の答えが選択された答えとして設定されていたとしても、これは正しい答えです。最初にCPTを宣言するときに除外できるものを削除するためにフィルターを実行する必要はありません。
-butlerblog

-1

WYSIWYGエディターを無効にして、HTMLソースエディターのみを残す別のより一貫した方法は、カスタム投稿タイプに「wp_editor_settings」フィルターを使用してtinymceを許可しないことです。

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' );

回答を編集し、説明を追加してください:なぜそれが問題を解決できるのでしょうか?
FUXIA
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.