_WP_Editors::parse_settings( string $editor_id, array $settings ): array

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.
  • wpautop bool
    Whether to use wpautop() . Default true.
  • media_buttons bool
    Whether to show the Add Media/other media buttons.
  • default_editor string
    When both TinyMCE and Quicktags are used, set which editor is shown on page load. Default empty.
  • drag_drop_upload bool
    Whether to enable drag & drop on the editor uploading. Default false.
    Requires the media modal.
  • textarea_name string
    Give the textarea a unique name here. Square brackets can be used here. Default $editor_id.
  • textarea_rows int
    Number rows in the editor textarea. Default 20.
  • tabindex string|int
    Tabindex value to use. Default empty.
  • tabfocus_elements string
    The previous and next element ID to move the focus to when pressing the Tab key in TinyMCE. Default ':prev,:next'.
  • editor_css string
    Intended for extra styles for both Visual and Code editors.
    Should include <style> tags, and can use "scoped". Default empty.
  • editor_class string
    Extra classes to add to the editor textarea element. Default empty.
  • teeny bool
    Whether to output the minimal editor config. Examples include Press This and the Comment editor. Default false.
  • dfw bool
    Deprecated in 4.1. Unused.
  • tinymce bool|array
    Whether to load TinyMCE. Can be used to pass settings directly to TinyMCE using an array. Default true.
  • quicktags bool|array
    Whether to load Quicktags. Can be used to pass settings directly to Quicktags using an array. Default true.

Return

array Parsed arguments array.

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

VersionDescription
3.3.0Introduced.

User Contributed Notes

  1. Skip to note 4 content

    Suppose, for example, you want to change the stylesheet for the TinyMCE editor. You could do it like this:

    $settings = array(	'tinymce' => array(	'content_css' => '/wp-content/themes/mytheme/css/tinymce-editor.css',	),	);

    Other settings for TinyMCE can be found at https://codex.wordpress.org/TinyMCE

  2. Skip to note 6 content

    To set height of the editor, use ‘editor_height’ settings as shown in this example below:

    add_filter( 'wp_editor_settings', 'my_wp_editor_settings', 10, 2 ); function my_wp_editor_settings( $settings, $id ){ if ( $id == 'content' ){ $settings['editor_height'] = 100; } return $settings; }

You must log in before being able to contribute a note or feedback.