Parse default arguments for the editor instance.
Parameters
$editor_idstringrequired- HTML ID for the textarea and TinyMCE and Quicktags instances.
Should not contain square brackets. $settingsarrayrequired- Array of editor arguments.
wpautopboolWhether to use wpautop() . Default true.media_buttonsboolWhether to show the Add Media/other media buttons.default_editorstringWhen both TinyMCE and Quicktags are used, set which editor is shown on page load. Default empty.drag_drop_uploadboolWhether to enable drag & drop on the editor uploading. Default false.
Requires the media modal.textarea_namestringGive the textarea a unique name here. Square brackets can be used here. Default $editor_id.textarea_rowsintNumber rows in the editor textarea. Default 20.tabindexstring|intTabindex value to use. Default empty.tabfocus_elementsstringThe previous and next element ID to move the focus to when pressing the Tab key in TinyMCE. Default':prev,:next'.editor_cssstringIntended for extra styles for both Visual and Code editors.
Should include<style>tags, and can use "scoped". Default empty.editor_classstringExtra classes to add to the editor textarea element. Default empty.teenyboolWhether to output the minimal editor config. Examples include Press This and the Comment editor. Default false.dfwboolDeprecated in 4.1. Unused.tinymcebool|arrayWhether to load TinyMCE. Can be used to pass settings directly to TinyMCE using an array. Default true.quicktagsbool|arrayWhether to load Quicktags. Can be used to pass settings directly to Quicktags using an array. Default true.
Source
public static function parse_settings( $editor_id, $settings ) {
/**
* Filters the wp_editor() settings.
*
* @since 4.0.0
*
* @see _WP_Editors::parse_settings()
*
* @param array $settings Array of editor arguments.
* @param string $editor_id Unique editor identifier, e.g. 'content'. Accepts 'classic-block'
* when called from block editor's Classic block.
*/
$settings = apply_filters( 'wp_editor_settings', $settings, $editor_id );
$set = wp_parse_args(
$settings,
array(
// Disable autop if the current post has blocks in it.
'wpautop' => ! has_blocks(),
'media_buttons' => true,
'default_editor' => '',
'drag_drop_upload' => false,
'textarea_name' => $editor_id,
'textarea_rows' => 20,
'tabindex' => '',
'tabfocus_elements' => ':prev,:next',
'editor_css' => '',
'editor_class' => '',
'teeny' => false,
'_content_editor_dfw' => false,
'tinymce' => true,
'quicktags' => true,
)
);
self::$this_tinymce = ( $set['tinymce'] && user_can_richedit() );
if ( self::$this_tinymce ) {
if ( str_contains( $editor_id, '[' ) ) {
self::$this_tinymce = false;
_deprecated_argument( 'wp_editor()', '3.9.0', 'TinyMCE editor IDs cannot have brackets.' );
}
}
self::$this_quicktags = (bool) $set['quicktags'];
if ( self::$this_tinymce ) {
self::$has_tinymce = true;
}
if ( self::$this_quicktags ) {
self::$has_quicktags = true;
}
if ( empty( $set['editor_height'] ) ) {
return $set;
}
if ( 'content' === $editor_id && empty( $set['tinymce']['wp_autoresize_on'] ) ) {
// A cookie (set when a user resizes the editor) overrides the height.
$cookie = (int) get_user_setting( 'ed_size' );
if ( $cookie ) {
$set['editor_height'] = $cookie;
}
}
if ( $set['editor_height'] < 50 ) {
$set['editor_height'] = 50;
} elseif ( $set['editor_height'] > 5000 ) {
$set['editor_height'] = 5000;
}
return $set;
}
Hooks
- apply_filters( ‘wp_editor_settings’,
array $settings ,string $editor_id ) Filters the wp_editor() settings.
Changelog
| Version | Description |
|---|---|
| 3.3.0 | Introduced. |
Suppose, for example, you want to change the stylesheet for the TinyMCE editor. You could do it like this:
Other settings for TinyMCE can be found at https://codex.wordpress.org/TinyMCE
‘dfw’
(bool) Deprecated in 4.1. Unused.
This is not true.
`dfw` is the fullscreen mode, used in text mode, when for example using the filter `quicktags_settings` it is passed to `$qtInit[‘buttons’]` and if you omit, the full screen mode wont show.
To set height of the editor, use ‘editor_height’ settings as shown in this example below: