WordPress at a glance
function is not described

_WP_Editors::parse_settings() public WP 3.3.0

Parse default arguments for the editor instance.

{} It's a method of the class: _WP_Editors{}

This is an internal function for using it by WP core itself. It's not recommended to use this function in your code.

Hooks from the method
Return

Array. Parsed arguments array.

Usage

$result = _WP_Editors::parse_settings( $editor_id, $settings );
$editor_id(string) (required)
HTML ID for the textarea and TinyMCE and Quicktags instances. Should not contain square brackets.
$settings(array) (required)

Array of editor arguments.

  • wpautop(true|false)
    Whether to use wpautop().
    Default: true

  • media_buttons(true|false)
    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: ''

  • drag_drop_upload(true|false)
    Whether to enable drag & drop on the editor uploading. Requires the media modal.
    Default: false

  • 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: ''

  • 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 Text editors. Should include <style> tags, and can use "scoped".
    Default: ''

  • editor_class(string)
    Extra classes to add to the editor textarea element.
    Default: ''

  • teeny(true|false)
    Whether to output the minimal editor config. Examples include Press This and the Comment editor.
    Default: false

  • dfw(true|false)
    Deprecated in 4.1. Unused.

  • tinymce(true|false|array)
    Whether to load TinyMCE. Can be used to pass settings directly to TinyMCE using an array.
    Default: true

  • quicktags(true|false|array)
    Whether to load Quicktags. Can be used to pass settings directly to Quicktags using an array.
    Default: true

Changelog

Since 3.3.0 Introduced.

Code of _WP_Editors::parse_settings() WP 5.7.1

<?php
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 ( false !== strpos( $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;
}