web-dev-qa-db-ja.com

AdminからtinyMCEを削除し、textareaに置き換えます

カスタム投稿タイプを持つプラグインを作成しました。私はいくつかの単純なテキストのためにpost_contentを使っています。私はこのフィールドのためにどんな洒落た編集やデータの挿入も提供する必要はないので、私はtinyMCEエディタからボタンを削除する方法を探しました。

私は非常に良い解決策を見つけることができなかったので、register関数のカスタム投稿タイプサポートからeditorを削除しました。

'supports' => array('title','revisions','thumbnail'),

それからコンテンツの領域を作成するために、バックエンドフォームのtextareanameid属性を"content"としてエコーバックします。

<tr>
    <th scope="row">
        <label for="content">Review body</label>
    </th>
    <td>
        <textarea style="height: 300px; width: 100%" autocomplete="off" cols="40" name="content" id="content">' . $post->post_content . '</textarea>
    </td>
</tr>

これは私が望むとおりに機能し、そしてとても簡単です。

問題は、こうすることで衛生を失うのか、あるいは安全対策を省略するのかということです。

1
Nathan Powell

ホイールを作り直す必要はありません - editorサポートを元に戻して設定を微調整します。

function wpse_199918_wp_editor_settings( $settings, $editor_id ) {
    if ( $editor_id === 'content' && get_current_screen()->post_type === 'custom_post_type' ) {
        $settings['tinymce']   = false;
        $settings['quicktags'] = false;
        $settings['media_buttons'] = false;
    }

    return $settings;
}

add_filter( 'wp_editor_settings', 'wpse_199918_wp_editor_settings', 10, 2 );
5
TheDeadMedic