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

Parse default arguments for the editor instance.


Parameters

$editor_id

(Required) ID for the current editor instance.

$settings

(Required) 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 Text 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 WP-4.1. Since WP-4.3 used only to enqueue wp-fullscreen-stub.js for backward compatibility.
  • '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

File: wp-includes/class-wp-editor.php

	public static function parse_settings( $editor_id, $settings ) {

		/**
		 * Filters the wp_editor() settings.
		 *
		 * @since WP-4.0.0
		 *
		 * @see _WP_Editors()::parse_settings()
		 *
		 * @param array  $settings  Array of editor arguments.
		 * @param string $editor_id ID for the current editor instance.
		 */
		$settings = apply_filters( 'wp_editor_settings', $settings, $editor_id );

		$set = wp_parse_args( $settings, array(
			'wpautop'             => true,
			'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,
			'dfw'                 => 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()', 'WP-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 ( $set['dfw'] ) {
			self::$old_dfw_compat = 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;
	}