'widget_pages', 'description' => __( 'Your site’s WordPress Pages') ); parent::__construct('pages', __('Pages'), $widget_ops); } function widget( $args, $instance ) { extract( $args ); $title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Pages' ) : $instance['title'], $instance, $this->id_base); $sortby = empty( $instance['sortby'] ) ? 'menu_order' : $instance['sortby']; $exclude = empty( $instance['exclude'] ) ? '' : $instance['exclude']; if ( $sortby == 'menu_order' ) $sortby = 'menu_order, post_title'; $out = wp_list_pages( apply_filters('widget_pages_args', array('title_li' => '', 'echo' => 0, 'sort_column' => $sortby, 'exclude' => $exclude) ) ); if ( !empty( $out ) ) { echo $before_widget; if ( $title) echo $before_title . $title . $after_title; ?> 'post_title', 'title' => '', 'exclude' => '') ); $title = esc_attr( $instance['title'] ); $exclude = esc_attr( $instance['exclude'] ); ?>


__( "Your blogroll" ) ); parent::__construct('links', __('Links'), $widget_ops); } function widget( $args, $instance ) { extract($args, EXTR_SKIP); $show_description = isset($instance['description']) ? $instance['description'] : false; $show_name = isset($instance['name']) ? $instance['name'] : false; $show_rating = isset($instance['rating']) ? $instance['rating'] : false; $show_images = isset($instance['images']) ? $instance['images'] : true; $category = isset($instance['category']) ? $instance['category'] : false; if ( is_admin() && !$category ) { // Display All Links widget as such in the widgets screen echo $before_widget . $before_title. __('All Links') . $after_title . $after_widget; return; } $before_widget = preg_replace('/id="[^"]*"/','id="%id"', $before_widget); wp_list_bookmarks(apply_filters('widget_links_args', array( 'title_before' => $before_title, 'title_after' => $after_title, 'category_before' => $before_widget, 'category_after' => $after_widget, 'show_images' => $show_images, 'show_description' => $show_description, 'show_name' => $show_name, 'show_rating' => $show_rating, 'category' => $category, 'class' => 'linkcat widget' ))); } function update( $new_instance, $old_instance ) { $new_instance = (array) $new_instance; $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0); foreach ( $instance as $field => $val ) { if ( isset($new_instance[$field]) ) $instance[$field] = 1; } $instance['category'] = intval($new_instance['category']); return $instance; } function form( $instance ) { //Defaults $instance = wp_parse_args( (array) $instance, array( 'images' => true, 'name' => true, 'description' => false, 'rating' => false, 'category' => false ) ); $link_cats = get_terms( 'link_category'); ?>

id="get_field_id('images'); ?>" name="get_field_name('images'); ?>" />
id="get_field_id('name'); ?>" name="get_field_name('name'); ?>" />
id="get_field_id('description'); ?>" name="get_field_name('description'); ?>" />
id="get_field_id('rating'); ?>" name="get_field_name('rating'); ?>" />

'widget_search', 'description' => __( "A search form for your site") ); parent::__construct('search', __('Search'), $widget_ops); } function widget( $args, $instance ) { extract($args); $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; // Use current theme search form if it exists get_search_form(); echo $after_widget; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '') ); $title = $instance['title']; ?>

'')); $instance['title'] = strip_tags($new_instance['title']); return $instance; } } /** * Archives widget class * * @since 2.8.0 */ class WP_Widget_Archives extends WP_Widget { function __construct() { $widget_ops = array('classname' => 'widget_archive', 'description' => __( 'A monthly archive of your site’s posts') ); parent::__construct('archives', __('Archives'), $widget_ops); } function widget( $args, $instance ) { extract($args); $c = $instance['count'] ? '1' : '0'; $d = $instance['dropdown'] ? '1' : '0'; $title = apply_filters('widget_title', empty($instance['title']) ? __('Archives') : $instance['title'], $instance, $this->id_base); echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; if ( $d ) { ?> '', 'count' => 0, 'dropdown' => '') ); $instance['title'] = strip_tags($new_instance['title']); $instance['count'] = $new_instance['count'] ? 1 : 0; $instance['dropdown'] = $new_instance['dropdown'] ? 1 : 0; return $instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') ); $title = strip_tags($instance['title']); $count = $instance['count'] ? 'checked="checked"' : ''; $dropdown = $instance['dropdown'] ? 'checked="checked"' : ''; ?>

id="get_field_id('dropdown'); ?>" name="get_field_name('dropdown'); ?>" />
id="get_field_id('count'); ?>" name="get_field_name('count'); ?>" />

'widget_meta', 'description' => __( "Log in/out, admin, feed and WordPress links") ); parent::__construct('meta', __('Meta'), $widget_ops); } function widget( $args, $instance ) { extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? __('Meta') : $instance['title'], $instance, $this->id_base); echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; ?> '' ) ); $title = strip_tags($instance['title']); ?>

'widget_calendar', 'description' => __( 'A calendar of your site’s posts') ); parent::__construct('calendar', __('Calendar'), $widget_ops); } function widget( $args, $instance ) { extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title'], $instance, $this->id_base); echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; echo '
'; get_calendar(); echo '
'; echo $after_widget; } function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); return $instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) ); $title = strip_tags($instance['title']); ?>

'widget_text', 'description' => __('Arbitrary text or HTML')); $control_ops = array('width' => 400, 'height' => 350); parent::__construct('text', __('Text'), $widget_ops, $control_ops); } function widget( $args, $instance ) { extract($args); $title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); $text = apply_filters( 'widget_text', $instance['text'], $instance ); echo $before_widget; if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
'', 'text' => '' ) ); $title = strip_tags($instance['title']); $text = esc_textarea($instance['text']); ?>

/> 

'widget_categories', 'description' => __( "A list or dropdown of categories" ) ); parent::__construct('categories', __('Categories'), $widget_ops); } function widget( $args, $instance ) { extract( $args ); $title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base); $c = $instance['count'] ? '1' : '0'; $h = $instance['hierarchical'] ? '1' : '0'; $d = $instance['dropdown'] ? '1' : '0'; echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h); if ( $d ) { $cat_args['show_option_none'] = __('Select Category'); wp_dropdown_categories(apply_filters('widget_categories_dropdown_args', $cat_args)); ?> '') ); $title = esc_attr( $instance['title'] ); $count = isset($instance['count']) ? (bool) $instance['count'] :false; $hierarchical = isset( $instance['hierarchical'] ) ? (bool) $instance['hierarchical'] : false; $dropdown = isset( $instance['dropdown'] ) ? (bool) $instance['dropdown'] : false; ?>

/>
/>
/>

'widget_recent_entries', 'description' => __( "The most recent posts on your site") ); parent::__construct('recent-posts', __('Recent Posts'), $widget_ops); $this->alt_option_name = 'widget_recent_entries'; add_action( 'save_post', array(&$this, 'flush_widget_cache') ); add_action( 'deleted_post', array(&$this, 'flush_widget_cache') ); add_action( 'switch_theme', array(&$this, 'flush_widget_cache') ); } function widget($args, $instance) { $cache = wp_cache_get('widget_recent_posts', 'widget'); if ( !is_array($cache) ) $cache = array(); if ( isset($cache[$args['widget_id']]) ) { echo $cache[$args['widget_id']]; return; } ob_start(); extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Posts') : $instance['title'], $instance, $this->id_base); if ( ! $number = absint( $instance['number'] ) ) $number = 10; $r = new WP_Query(array('posts_per_page' => $number, 'nopaging' => 0, 'post_status' => 'publish', 'ignore_sticky_posts' => true)); if ($r->have_posts()) : ?> flush_widget_cache(); $alloptions = wp_cache_get( 'alloptions', 'options' ); if ( isset($alloptions['widget_recent_entries']) ) delete_option('widget_recent_entries'); return $instance; } function flush_widget_cache() { wp_cache_delete('widget_recent_posts', 'widget'); } function form( $instance ) { $title = isset($instance['title']) ? esc_attr($instance['title']) : ''; $number = isset($instance['number']) ? absint($instance['number']) : 5; ?>

'widget_recent_comments', 'description' => __( 'The most recent comments' ) ); parent::__construct('recent-comments', __('Recent Comments'), $widget_ops); $this->alt_option_name = 'widget_recent_comments'; if ( is_active_widget(false, false, $this->id_base) ) add_action( 'wp_head', array(&$this, 'recent_comments_style') ); add_action( 'comment_post', array(&$this, 'flush_widget_cache') ); add_action( 'transition_comment_status', array(&$this, 'flush_widget_cache') ); } function recent_comments_style() { if ( ! current_theme_supports( 'widgets' ) // Temp hack #14876 || ! apply_filters( 'show_recent_comments_widget_style', true, $this->id_base ) ) return; ?> $number, 'status' => 'approve', 'post_status' => 'publish' ) ); $output .= $before_widget; if ( $title ) $output .= $before_title . $title . $after_title; $output .= ''; $output .= $after_widget; echo $output; $cache[$args['widget_id']] = $output; wp_cache_set('widget_recent_comments', $cache, 'widget'); } function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['number'] = absint( $new_instance['number'] ); $this->flush_widget_cache(); $alloptions = wp_cache_get( 'alloptions', 'options' ); if ( isset($alloptions['widget_recent_comments']) ) delete_option('widget_recent_comments'); return $instance; } function form( $instance ) { $title = isset($instance['title']) ? esc_attr($instance['title']) : ''; $number = isset($instance['number']) ? absint($instance['number']) : 5; ?>

__('Entries from any RSS or Atom feed') ); $control_ops = array( 'width' => 400, 'height' => 200 ); parent::__construct( 'rss', __('RSS'), $widget_ops, $control_ops ); } function widget($args, $instance) { if ( isset($instance['error']) && $instance['error'] ) return; extract($args, EXTR_SKIP); $url = $instance['url']; while ( stristr($url, 'http') != $url ) $url = substr($url, 1); if ( empty($url) ) return; // self-url destruction sequence if ( in_array( untrailingslashit( $url ), array( site_url(), home_url() ) ) ) return; $rss = fetch_feed($url); $title = $instance['title']; $desc = ''; $link = ''; if ( ! is_wp_error($rss) ) { $desc = esc_attr(strip_tags(@html_entity_decode($rss->get_description(), ENT_QUOTES, get_option('blog_charset')))); if ( empty($title) ) $title = esc_html(strip_tags($rss->get_title())); $link = esc_url(strip_tags($rss->get_permalink())); while ( stristr($link, 'http') != $link ) $link = substr($link, 1); } if ( empty($title) ) $title = empty($desc) ? __('Unknown Feed') : $desc; $title = apply_filters('widget_title', $title, $instance, $this->id_base); $url = esc_url(strip_tags($url)); $icon = includes_url('images/rss.png'); if ( $title ) $title = "RSS $title"; echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; wp_widget_rss_output( $rss, $instance ); echo $after_widget; if ( ! is_wp_error($rss) ) $rss->__destruct(); unset($rss); } function update($new_instance, $old_instance) { $testurl = ( isset($new_instance['url']) && ($new_instance['url'] != $old_instance['url']) ); return wp_widget_rss_process( $new_instance, $testurl ); } function form($instance) { if ( empty($instance) ) $instance = array( 'title' => '', 'url' => '', 'items' => 10, 'error' => false, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0 ); $instance['number'] = $this->number; wp_widget_rss_form( $instance ); } } /** * Display the RSS entries in a list. * * @since 2.5.0 * * @param string|array|object $rss RSS url. * @param array $args Widget arguments. */ function wp_widget_rss_output( $rss, $args = array() ) { if ( is_string( $rss ) ) { $rss = fetch_feed($rss); } elseif ( is_array($rss) && isset($rss['url']) ) { $args = $rss; $rss = fetch_feed($rss['url']); } elseif ( !is_object($rss) ) { return; } if ( is_wp_error($rss) ) { if ( is_admin() || current_user_can('manage_options') ) echo '

' . sprintf( __('RSS Error: %s'), $rss->get_error_message() ) . '

'; return; } $default_args = array( 'show_author' => 0, 'show_date' => 0, 'show_summary' => 0 ); $args = wp_parse_args( $args, $default_args ); extract( $args, EXTR_SKIP ); $items = (int) $items; if ( $items < 1 || 20 < $items ) $items = 10; $show_summary = (int) $show_summary; $show_author = (int) $show_author; $show_date = (int) $show_date; if ( !$rss->get_item_quantity() ) { echo ''; $rss->__destruct(); unset($rss); return; } echo ''; $rss->__destruct(); unset($rss); } /** * Display RSS widget options form. * * The options for what fields are displayed for the RSS form are all booleans * and are as follows: 'url', 'title', 'items', 'show_summary', 'show_author', * 'show_date'. * * @since 2.5.0 * * @param array|string $args Values for input fields. * @param array $inputs Override default display options. */ function wp_widget_rss_form( $args, $inputs = null ) { $default_inputs = array( 'url' => true, 'title' => true, 'items' => true, 'show_summary' => true, 'show_author' => true, 'show_date' => true ); $inputs = wp_parse_args( $inputs, $default_inputs ); extract( $args ); extract( $inputs, EXTR_SKIP); $number = esc_attr( $number ); $title = esc_attr( $title ); $url = esc_url( $url ); $items = (int) $items; if ( $items < 1 || 20 < $items ) $items = 10; $show_summary = (int) $show_summary; $show_author = (int) $show_author; $show_date = (int) $show_date; if ( !empty($error) ) echo '

' . sprintf( __('RSS Error: %s'), $error) . '

'; if ( $inputs['url'] ) : ?>

/>

/>

/>

get_error_message(); } else { $link = esc_url(strip_tags($rss->get_permalink())); while ( stristr($link, 'http') != $link ) $link = substr($link, 1); $rss->__destruct(); unset($rss); } } return compact( 'title', 'url', 'link', 'items', 'error', 'show_summary', 'show_author', 'show_date' ); } /** * Tag cloud widget class * * @since 2.8.0 */ class WP_Widget_Tag_Cloud extends WP_Widget { function __construct() { $widget_ops = array( 'description' => __( "Your most used tags in cloud format") ); parent::__construct('tag_cloud', __('Tag Cloud'), $widget_ops); } function widget( $args, $instance ) { extract($args); $current_taxonomy = $this->_get_current_taxonomy($instance); if ( !empty($instance['title']) ) { $title = $instance['title']; } else { if ( 'post_tag' == $current_taxonomy ) { $title = __('Tags'); } else { $tax = get_taxonomy($current_taxonomy); $title = $tax->labels->name; } } $title = apply_filters('widget_title', $title, $instance, $this->id_base); echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; echo '
'; wp_tag_cloud( apply_filters('widget_tag_cloud_args', array('taxonomy' => $current_taxonomy) ) ); echo "
\n"; echo $after_widget; } function update( $new_instance, $old_instance ) { $instance['title'] = strip_tags(stripslashes($new_instance['title'])); $instance['taxonomy'] = stripslashes($new_instance['taxonomy']); return $instance; } function form( $instance ) { $current_taxonomy = $this->_get_current_taxonomy($instance); ?>

__('Use this widget to add one of your custom menus as a widget.') ); parent::__construct( 'nav_menu', __('Custom Menu'), $widget_ops ); } function widget($args, $instance) { // Get menu $nav_menu = wp_get_nav_menu_object( $instance['nav_menu'] ); if ( !$nav_menu ) return; $instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); echo $args['before_widget']; if ( !empty($instance['title']) ) echo $args['before_title'] . $instance['title'] . $args['after_title']; wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) ); echo $args['after_widget']; } function update( $new_instance, $old_instance ) { $instance['title'] = strip_tags( stripslashes($new_instance['title']) ); $instance['nav_menu'] = (int) $new_instance['nav_menu']; return $instance; } function form( $instance ) { $title = isset( $instance['title'] ) ? $instance['title'] : ''; $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : ''; // Get menus $menus = get_terms( 'nav_menu', array( 'hide_empty' => false ) ); // If no menus exists, direct the user to go and create some. if ( !$menus ) { echo '

'. sprintf( __('No menus have been created yet. Create some.'), admin_url('nav-menus.php') ) .'

'; return; } ?>