wp_iframe( callable $content_func, mixed $args )

Outputs the iframe to display the media upload page.

Parameters

$content_funccallablerequired
Function that outputs the content.
$argsmixedoptional
Optional additional parameters to pass to the callback function when it’s called.

Source

function wp_iframe( $content_func, ...$args ) {
	_wp_admin_html_begin();
	?>
	<title><?php bloginfo( 'name' ); ?> &rsaquo; <?php _e( 'Uploads' ); ?> &#8212; <?php _e( 'WordPress' ); ?></title>
	<?php

	wp_enqueue_style( 'colors' );
	// Check callback name for 'media'.
	if (
		( is_array( $content_func ) && ! empty( $content_func[1] ) && str_starts_with( (string) $content_func[1], 'media' ) ) ||
		( ! is_array( $content_func ) && str_starts_with( $content_func, 'media' ) )
	) {
		wp_enqueue_style( 'deprecated-media' );
	}

	?>
	<script type="text/javascript">
	addLoadEvent = function(func){if(typeof jQuery!=='undefined')jQuery(function(){func();});else if(typeof wpOnload!=='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
	var ajaxurl = '<?php echo esc_js( admin_url( 'admin-ajax.php', 'relative' ) ); ?>', pagenow = 'media-upload-popup', adminpage = 'media-upload-popup',
	isRtl = <?php echo (int) is_rtl(); ?>;
	</script>
	<?php
	/** This action is documented in wp-admin/admin-header.php */
	do_action( 'admin_enqueue_scripts', 'media-upload-popup' );

	/**
	 * Fires when admin styles enqueued for the legacy (pre-3.5.0) media upload popup are printed.
	 *
	 * @since 2.9.0
	 */
	do_action( 'admin_print_styles-media-upload-popup' );  // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

	/** This action is documented in wp-admin/admin-header.php */
	do_action( 'admin_print_styles' );

	/**
	 * Fires when admin scripts enqueued for the legacy (pre-3.5.0) media upload popup are printed.
	 *
	 * @since 2.9.0
	 */
	do_action( 'admin_print_scripts-media-upload-popup' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

	/** This action is documented in wp-admin/admin-header.php */
	do_action( 'admin_print_scripts' );

	/**
	 * Fires when scripts enqueued for the admin header for the legacy (pre-3.5.0)
	 * media upload popup are printed.
	 *
	 * @since 2.9.0
	 */
	do_action( 'admin_head-media-upload-popup' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

	/** This action is documented in wp-admin/admin-header.php */
	do_action( 'admin_head' );

	if ( is_string( $content_func ) ) {
		/**
		 * Fires in the admin header for each specific form tab in the legacy
		 * (pre-3.5.0) media upload popup.
		 *
		 * The dynamic portion of the hook name, `$content_func`, refers to the form
		 * callback for the media upload type.
		 *
		 * @since 2.5.0
		 */
		do_action( "admin_head_{$content_func}" );
	}

	$body_id_attr = '';

	if ( isset( $GLOBALS['body_id'] ) ) {
		$body_id_attr = ' id="' . $GLOBALS['body_id'] . '"';
	}

	?>
	</head>
	<body<?php echo $body_id_attr; ?> class="wp-core-ui no-js">
	<script type="text/javascript">
	document.body.className = document.body.className.replace('no-js', 'js');
	</script>
	<?php

	call_user_func_array( $content_func, $args );

	/** This action is documented in wp-admin/admin-footer.php */
	do_action( 'admin_print_footer_scripts' );

	?>
	<script type="text/javascript">if(typeof wpOnload==='function')wpOnload();</script>
	</body>
	</html>
	<?php
}

Hooks

do_action( ‘admin_enqueue_scripts’, string $hook_suffix )

Fires when enqueuing scripts for all admin pages.

do_action( ‘admin_head’ )

Fires in head section for all admin pages.

do_action( ‘admin_head-media-upload-popup’ )

Fires when scripts enqueued for the admin header for the legacy (pre-3.5.0) media upload popup are printed.

do_action( “admin_head_{$content_func}” )

Fires in the admin header for each specific form tab in the legacy (pre-3.5.0) media upload popup.

do_action( ‘admin_print_footer_scripts’ )

Prints any scripts and data queued for the footer.

do_action( ‘admin_print_scripts’ )

Fires when scripts are printed for all admin pages.

do_action( ‘admin_print_scripts-media-upload-popup’ )

Fires when admin scripts enqueued for the legacy (pre-3.5.0) media upload popup are printed.

do_action( ‘admin_print_styles’ )

Fires when styles are printed for all admin pages.

do_action( ‘admin_print_styles-media-upload-popup’ )

Fires when admin styles enqueued for the legacy (pre-3.5.0) media upload popup are printed.

Changelog

VersionDescription
5.3.0Formalized the existing and already documented ...$args parameter by adding it to the function signature.
2.5.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    Demonstrate how to add new tab in the media upload iframe

    // Add the tab.
    add_filter( 'media_upload_tabs', 'wpdocs_my_upload_tab' );
    function wpdocs_my_upload_tab( $tabs ) {
    	$tabs['mytabname'] = __( 'My Tab Name', 'textdomain' );
    	return $tabs;
    }
    
    // Call the new tab with wp_iframe.
    add_action( 'media_upload_mytabname', 'wpdocs_add_my_new_form' );
    function wpdocs_add_my_new_form() {
    	wp_iframe( 'wpdocs_my_new_form' );
    }
    
    // The tab content.
    function wpdocs_my_new_form() {
    	echo '<p>' . __( 'Example HTML content goes here.', 'textdomain' ) . '</p>';
    }

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