wp_dashboard_cached_rss_widget() WordPress Function

The wp_dashboard_cached_rss_widget() function displays a cached RSS feed on the WordPress Dashboard. This function is used by the WordPress core to display the WordPress News feed on the Dashboard.

wp_dashboard_cached_rss_widget( string $widget_id, callable $callback, array $check_urls = array(), mixed $args ) #

Checks to see if all of the feed url in $check_urls are cached.


Description

If $check_urls is empty, look for the rss feed url found in the dashboard widget options of $widget_id. If cached, call $callback, a function that echoes out output for this widget. If not cache, echo a "Loading…" stub which is later replaced by Ajax call (see top of /wp-admin/index.php)


Top ↑

Parameters

$widget_id

(string)(Required)The widget ID.

$callback

(callable)(Required)The callback function used to display each feed.

$check_urls

(array)(Optional)RSS feeds.

Default value: array()

$args

(mixed)(Optional)additional parameters to pass to the callback function.


Top ↑

Return

(bool) True on success, false on failure.


Top ↑

Source

File: wp-admin/includes/dashboard.php

function wp_dashboard_cached_rss_widget( $widget_id, $callback, $check_urls = array(), ...$args ) {
	$loading    = '<p class="widget-loading hide-if-no-js">' . __( 'Loading&hellip;' ) . '</p><div class="hide-if-js notice notice-error inline"><p>' . __( 'This widget requires JavaScript.' ) . '</p></div>';
	$doing_ajax = wp_doing_ajax();

	if ( empty( $check_urls ) ) {
		$widgets = get_option( 'dashboard_widget_options' );

		if ( empty( $widgets[ $widget_id ]['url'] ) && ! $doing_ajax ) {
			echo $loading;
			return false;
		}

		$check_urls = array( $widgets[ $widget_id ]['url'] );
	}

	$locale    = get_user_locale();
	$cache_key = 'dash_v2_' . md5( $widget_id . '_' . $locale );
	$output    = get_transient( $cache_key );

	if ( false !== $output ) {
		echo $output;
		return true;
	}

	if ( ! $doing_ajax ) {
		echo $loading;
		return false;
	}

	if ( $callback && is_callable( $callback ) ) {
		array_unshift( $args, $widget_id, $check_urls );
		ob_start();
		call_user_func_array( $callback, $args );
		// Default lifetime in cache of 12 hours (same as the feeds).
		set_transient( $cache_key, ob_get_flush(), 12 * HOUR_IN_SECONDS );
	}

	return true;
}


Top ↑

Changelog

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

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.