Skip to Content

Widget

This shortcode allows you to call any widget by name along with it’s parameters (“instances”).

WordPress August 19, 2017

Usage

WordPress
[widget widget_name instances]

Parameters

widget_name
(Required) (String) The name of the widget to call
Default: None

instances
(Optional) (String) Attributes for the widget
Default: None

Parameter Notes

The instances parameter is actually a series of attribute=”value” parameters. The attribute should be the parameter name from the widget. See examples for more help.

Request or provide clarification »

Examples

Call a widget without using instances

WordPress
[widget widget_name="nebula_login_form"]

Call a widget with custom settings

WordPress
[widget widget_name="nebula_linked_image" image="http://placehold.it/300x300" url="http://google.com"]

Call this function from a PHP template

PHP
<?php echo do_shortcode('[widget widget_name="nebula_linked_image" image="http://placehold.it/300x300" url="http://google.com"]'); ?>

Call a widget directly via PHP without this function

PHP
<?php the_widget('nebula_linked_image', array('image' => 'http://placehold.it/300x300', 'url' => 'http://google.com')); ?>

Source File

Located in /libs/Shortcodes.php on line 112.

WordPress
        public function widget($atts){
            global $wp_widget_factory;

            //Get widget fields
            $instance = array();
            foreach ( $atts as $attribute => $value ){
                if ( $attribute !== 'widget_name' ){
                    $instance[$attribute] = $value;
                }
            }

            extract(shortcode_atts(array(
                'widget_name' => false,
            ), $atts));

            ob_start();

            //Call the widget directly via PHP: https://codex.wordpress.org/Template_Tags/the_widget
            the_widget(esc_html($widget_name), $instance, array(
                'widget_id' => 'arbitrary-instance-' . rand(10000, 99999),
                'before_widget' => '',
                'after_widget' => '',
                'before_title' => '',
                'after_title' => ''
            ));

            $output = ob_get_contents();
            ob_end_clean();

            return $output;
        }

Override

To override or disable this shortcode, use add_shortcode() to declare the shortcode first.