wp_dashboard_setup

Definition:
function wp_dashboard_setup() {}

Registers dashboard widgets.
Handles POST data, sets up filters.

Defined filters

  • dashboard_incoming_links_link
    apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:' . trailingslashit( get_option('home')
  • dashboard_incoming_links_feed
    apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] )
  • dashboard_incoming_links_feed
    apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=' . $num_items . '&output=rss&partner=wordpress&q=link:' . trailingslashit( get_option('home')
  • dashboard_primary_link
    apply_filters( 'dashboard_primary_link', __( 'http://wordpress.org/news/' )
  • dashboard_primary_feed
    apply_filters( 'dashboard_primary_feed', __( 'http://wordpress.org/news/feed/' )
  • dashboard_primary_title
    apply_filters( 'dashboard_primary_title', __( 'WordPress Blog' )
  • dashboard_secondary_link
    apply_filters( 'dashboard_secondary_link', __( 'http://planet.wordpress.org/' )
  • dashboard_secondary_feed
    apply_filters( 'dashboard_secondary_feed', __( 'http://planet.wordpress.org/feed/' )
  • dashboard_secondary_title
    apply_filters( 'dashboard_secondary_title', __( 'Other WordPress News' )
  • wp_network_dashboard_widgets
    apply_filters( 'wp_network_dashboard_widgets', array()
  • wp_user_dashboard_widgets
    apply_filters( 'wp_user_dashboard_widgets', array()
  • wp_dashboard_widgets
    apply_filters( 'wp_dashboard_widgets', array()

Defined actions

  • wp_network_dashboard_setup
    do_action( 'wp_network_dashboard_setup' );
  • wp_user_dashboard_setup
    do_action( 'wp_user_dashboard_setup' );
  • wp_dashboard_setup
    do_action( 'wp_dashboard_setup' );

Source code

function wp_dashboard_setup() {

	global $wp_registered_widgets, $wp_registered_widget_controls, $wp_dashboard_control_callbacks;

	$wp_dashboard_control_callbacks = array();

	$screen = get_current_screen();



	$update = false;

	$widget_options = get_option( 'dashboard_widget_options' );

	if ( !$widget_options || !is_array($widget_options) )

		$widget_options = array();



	/* Register Widgets and Controls */



	$response = wp_check_browser_version();



	if ( $response && $response['upgrade'] ) {

		add_filter( 'postbox_classes_dashboard_dashboard_browser_nag', 'dashboard_browser_nag_class' );

		if ( $response['insecure'] )

			wp_add_dashboard_widget( 'dashboard_browser_nag', __( 'You are using an insecure browser!' ), 'wp_dashboard_browser_nag' );

		else

			wp_add_dashboard_widget( 'dashboard_browser_nag', __( 'Your browser is out of date!' ), 'wp_dashboard_browser_nag' );

	}



	// Right Now

	if ( is_blog_admin() && current_user_can('edit_posts') )

		wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );



	if ( is_network_admin() )

		wp_add_dashboard_widget( 'network_dashboard_right_now', __( 'Right Now' ), 'wp_network_dashboard_right_now' );



	// Recent Comments Widget

	if ( is_blog_admin() && current_user_can('moderate_comments') ) {

		if ( !isset( $widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {

			$update = true;

			$widget_options['dashboard_recent_comments'] = array(

				'items' => 5,

			);

		}

		$recent_comments_title = __( 'Recent Comments' );

		wp_add_dashboard_widget( 'dashboard_recent_comments', $recent_comments_title, 'wp_dashboard_recent_comments', 'wp_dashboard_recent_comments_control' );

	}



	// Incoming Links Widget

	if ( is_blog_admin() && current_user_can('publish_posts') ) {

		if ( !isset( $widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {

			$update = true;

			$num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;

			$widget_options['dashboard_incoming_links'] = array(

				'home' => get_option('home'),

				'link' => apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),

				'url' => isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] ) : apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=' . $num_items . '&output=rss&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),

				'items' => $num_items,

				'show_date' => isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false

			);

		}

		wp_add_dashboard_widget( 'dashboard_incoming_links', __( 'Incoming Links' ), 'wp_dashboard_incoming_links', 'wp_dashboard_incoming_links_control' );

	}



	// WP Plugins Widget

	if ( ( ! is_multisite() && is_blog_admin() && current_user_can( 'install_plugins' ) ) || ( is_network_admin() && current_user_can( 'manage_network_plugins' ) && current_user_can( 'install_plugins' ) ) )

		wp_add_dashboard_widget( 'dashboard_plugins', __( 'Plugins' ), 'wp_dashboard_plugins' );



	// QuickPress Widget

	if ( is_blog_admin() && current_user_can('edit_posts') )

		wp_add_dashboard_widget( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_quick_press' );



	// Recent Drafts

	if ( is_blog_admin() && current_user_can('edit_posts') )

		wp_add_dashboard_widget( 'dashboard_recent_drafts', __('Recent Drafts'), 'wp_dashboard_recent_drafts' );



	// Primary feed (Dev Blog) Widget

	if ( !isset( $widget_options['dashboard_primary'] ) ) {

		$update = true;

		$widget_options['dashboard_primary'] = array(

			'link' => apply_filters( 'dashboard_primary_link',  __( 'http://wordpress.org/news/' ) ),

			'url' => apply_filters( 'dashboard_primary_feed',  __( 'http://wordpress.org/news/feed/' ) ),

			'title' => apply_filters( 'dashboard_primary_title', __( 'WordPress Blog' ) ),

			'items' => 2,

			'show_summary' => 1,

			'show_author' => 0,

			'show_date' => 1,

		);

	}

	wp_add_dashboard_widget( 'dashboard_primary', $widget_options['dashboard_primary']['title'], 'wp_dashboard_primary', 'wp_dashboard_primary_control' );



	// Secondary Feed (Planet) Widget

	if ( !isset( $widget_options['dashboard_secondary'] ) ) {

		$update = true;

		$widget_options['dashboard_secondary'] = array(

			'link' => apply_filters( 'dashboard_secondary_link',  __( 'http://planet.wordpress.org/' ) ),

			'url' => apply_filters( 'dashboard_secondary_feed',  __( 'http://planet.wordpress.org/feed/' ) ),

			'title' => apply_filters( 'dashboard_secondary_title', __( 'Other WordPress News' ) ),

			'items' => 5,

			'show_summary' => 0,

			'show_author' => 0,

			'show_date' => 0,

		);

	}

	wp_add_dashboard_widget( 'dashboard_secondary', $widget_options['dashboard_secondary']['title'], 'wp_dashboard_secondary', 'wp_dashboard_secondary_control' );



	// Hook to register new widgets

	// Filter widget order

	if ( is_network_admin() ) {

		do_action( 'wp_network_dashboard_setup' );

		$dashboard_widgets = apply_filters( 'wp_network_dashboard_widgets', array() );

	} elseif ( is_user_admin() ) {

		do_action( 'wp_user_dashboard_setup' );

		$dashboard_widgets = apply_filters( 'wp_user_dashboard_widgets', array() );

	} else {

		do_action( 'wp_dashboard_setup' );

		$dashboard_widgets = apply_filters( 'wp_dashboard_widgets', array() );

	}



	foreach ( $dashboard_widgets as $widget_id ) {

		$name = empty( $wp_registered_widgets[$widget_id]['all_link'] ) ? $wp_registered_widgets[$widget_id]['name'] : $wp_registered_widgets[$widget_id]['name'] . " <a href='{$wp_registered_widgets[$widget_id]['all_link']}' class='edit-box open-box'>" . __('View all') . '</a>';

		wp_add_dashboard_widget( $widget_id, $name, $wp_registered_widgets[$widget_id]['callback'], $wp_registered_widget_controls[$widget_id]['callback'] );

	}

3569

wp_dashboard_secondary_output

Definition:
function wp_dashboard_secondary_output() {}

Display secondary dashboard RSS widget feed.

Source code

function wp_dashboard_secondary_output() {

	$widgets = get_option( 'dashboard_widget_options' );

	@extract( @$widgets['dashboard_secondary'], EXTR_SKIP );

	$rss = @fetch_feed( $url );



	if ( is_wp_error($rss) ) {

		if ( is_admin() || current_user_can('manage_options') ) {

			echo '<div class="rss-widget"><p>';

			printf(__('<strong>RSS Error</strong>: %s'), $rss->get_error_message());

			echo '</p></div>';

		}

	} elseif ( !$rss->get_item_quantity() ) {

		$rss->__destruct();

		unset($rss);

		return false;

	} else {

		echo '<div class="rss-widget">';

		wp_widget_rss_output( $rss, $widgets['dashboard_secondary'] );

		echo '</div>';

		$rss->__destruct();

		unset($rss);

	}

}

3567

wp_dashboard_secondary_control

Definition:
function wp_dashboard_secondary_control() {}

Source code

function wp_dashboard_secondary_control() {

	wp_dashboard_rss_control( 'dashboard_secondary' );

}

3565

wp_dashboard_secondary

Definition:
function wp_dashboard_secondary() {}

Source code

function wp_dashboard_secondary() {

	wp_dashboard_cached_rss_widget( 'dashboard_secondary', 'wp_dashboard_secondary_output' );

}

3563

wp_dashboard_rss_output

Definition:
function wp_dashboard_rss_output( $widget_id ) {}

Parameters

  • string $widget_id

Source code

function wp_dashboard_rss_output( $widget_id ) {

	$widgets = get_option( 'dashboard_widget_options' );

	echo '<div class="rss-widget">';

	wp_widget_rss_output( $widgets[$widget_id] );

	echo "</div>";

}

3561