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

Parse default arguments for the editor instance.


Parameters Parameters

$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'
    (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 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.


Top ↑

Return Return

(array) Parsed arguments array.



Top ↑

Source Source

File: wp-includes/class-wp-editor.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;
	}

Top ↑

Changelog Changelog

Changelog
Version Description
3.3.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by lflier

    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

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