_WP_Editors::parse_settings()public staticWP 3.3.0

Parse default arguments for the editor instance.

Method of the class: _WP_Editors{}

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.

_WP_Editors::parse_settings() code WP 6.4.3

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;
}