wp_render_widget() – Calls the render callback of a widget and returns the output.

You appear to be a bot. Output may be restricted

Description

Calls the render callback of a widget and returns the output.

Usage

$string = wp_render_widget( $widget_id, $sidebar_id );

Parameters

$widget_id
( string ) required – Widget ID.
$sidebar_id
( string ) required – Sidebar ID.

Returns

string

Source

File name: wordpress/wp-includes/widgets.php
Lines:

1 to 56 of 56
function wp_render_widget( $widget_id, $sidebar_id ) {
  global $wp_registered_widgets, $wp_registered_sidebars;

  if ( ! isset( $wp_registered_widgets[ $widget_id ] ) ) {
    return '';
  }

  if ( isset( $wp_registered_sidebars[ $sidebar_id ] ) ) {
    $sidebar = $wp_registered_sidebars[ $sidebar_id ];
  } elseif ( 'wp_inactive_widgets' === $sidebar_id ) {
    $sidebar = array();
  } else {
    return '';
  }

  $params = array_merge(
    array(
      array_merge(
        $sidebar,
        array(
          'widget_id'   => $widget_id,
          'widget_name' => $wp_registered_widgets[ $widget_id ]['name'],
        )
      ),
    ),
    (array) $wp_registered_widgets[ $widget_id ]['params']
  );

  // Substitute HTML `id` and `class` attributes into `before_widget`.
  $classname_ = '';
  foreach ( (array) $wp_registered_widgets[ $widget_id ]['classname'] as $cn ) {
    if ( is_string( $cn ) ) {
      $classname_ .= '_' . $cn;
    } elseif ( is_object( $cn ) ) {
      $classname_ .= '_' . get_class( $cn );
    }
  }
  $classname_                 = ltrim( $classname_, '_' );
  $params[0]['before_widget'] = sprintf( $params[0]['before_widget'], $widget_id, $classname_ );

  
/** This filter is documented in wp-includes/widgets.php */
  $params = apply_filters( 'dynamic_sidebar_params', $params );

  $callback = $wp_registered_widgets[ $widget_id ]['callback'];

  ob_start();

  
/** This filter is documented in wp-includes/widgets.php */
  do_action( 'dynamic_sidebar', $wp_registered_widgets[ $widget_id ] );

  if ( is_callable( $callback ) ) {
    call_user_func_array( $callback, $params );
  }

  return ob_get_clean();
}
 

 View on GitHub View on Trac