2009-03-16 23:02:40 +01:00
< ? php
2009-03-18 03:43:45 +01:00
/**
* Default Widgets
2009-03-16 23:02:40 +01:00
*
* @ package WordPress
* @ subpackage Widgets
*/
/**
* Pages widget class
*
* @ since 2.8 . 0
*/
class WP_Widget_Pages extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_pages' , 'description' => __ ( 'A list of your site’s Pages.' ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'pages' , __ ( 'Pages' ), $widget_ops );
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2009-03-16 23:02:40 +01:00
2014-03-25 09:53:14 +01:00
/**
* Filter the widget title .
*
* @ since 2.6 . 0
*
* @ param string $title The widget title . Default 'Pages' .
* @ param array $instance An array of the widget ' s settings .
* @ param mixed $id_base The widget ID .
*/
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? __ ( 'Pages' ) : $instance [ 'title' ], $instance , $this -> id_base );
2009-03-16 23:02:40 +01:00
$sortby = empty ( $instance [ 'sortby' ] ) ? 'menu_order' : $instance [ 'sortby' ];
$exclude = empty ( $instance [ 'exclude' ] ) ? '' : $instance [ 'exclude' ];
if ( $sortby == 'menu_order' )
$sortby = 'menu_order, post_title' ;
2014-03-25 09:53:14 +01:00
/**
* Filter the arguments for the Pages widget .
*
* @ since 2.8 . 0
*
* @ see wp_list_pages ()
*
* @ param array $args An array of arguments to retrieve the pages list .
*/
$out = wp_list_pages ( apply_filters ( 'widget_pages_args' , array (
'title_li' => '' ,
'echo' => 0 ,
'sort_column' => $sortby ,
'exclude' => $exclude
) ) );
2009-03-16 23:02:40 +01:00
2014-05-15 18:33:15 +02:00
if ( ! empty ( $out ) ) {
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-03-16 23:02:40 +01:00
?>
< ul >
< ? php echo $out ; ?>
</ ul >
< ? php
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-16 23:02:40 +01:00
}
}
2009-03-18 03:43:45 +01:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-16 23:02:40 +01:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
if ( in_array ( $new_instance [ 'sortby' ], array ( 'post_title' , 'menu_order' , 'ID' ) ) ) {
$instance [ 'sortby' ] = $new_instance [ 'sortby' ];
} else {
$instance [ 'sortby' ] = 'menu_order' ;
}
$instance [ 'exclude' ] = strip_tags ( $new_instance [ 'exclude' ] );
return $instance ;
}
2009-03-18 03:43:45 +01:00
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-16 23:02:40 +01:00
//Defaults
$instance = wp_parse_args ( ( array ) $instance , array ( 'sortby' => 'post_title' , 'title' => '' , 'exclude' => '' ) );
2009-05-05 21:43:53 +02:00
$title = esc_attr ( $instance [ 'title' ] );
$exclude = esc_attr ( $instance [ 'exclude' ] );
2009-03-16 23:02:40 +01:00
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> </label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
2009-03-16 23:02:40 +01:00
< p >
2009-05-22 18:13:05 +02:00
< label for = " <?php echo $this->get_field_id ('sortby'); ?> " >< ? php _e ( 'Sort by:' ); ?> </label>
< select name = " <?php echo $this->get_field_name ('sortby'); ?> " id = " <?php echo $this->get_field_id ('sortby'); ?> " class = " widefat " >
< option value = " post_title " < ? php selected ( $instance [ 'sortby' ], 'post_title' ); ?> ><?php _e('Page title'); ?></option>
< option value = " menu_order " < ? php selected ( $instance [ 'sortby' ], 'menu_order' ); ?> ><?php _e('Page order'); ?></option>
< option value = " ID " < ? php selected ( $instance [ 'sortby' ], 'ID' ); ?> ><?php _e( 'Page ID' ); ?></option>
</ select >
2009-03-16 23:02:40 +01:00
</ p >
< p >
2009-05-22 18:13:05 +02:00
< label for = " <?php echo $this->get_field_id ('exclude'); ?> " >< ? php _e ( 'Exclude:' ); ?> </label> <input type="text" value="<?php echo $exclude; ?>" name="<?php echo $this->get_field_name('exclude'); ?>" id="<?php echo $this->get_field_id('exclude'); ?>" class="widefat" />
2009-03-16 23:02:40 +01:00
< br />
< small >< ? php _e ( 'Page IDs, separated by commas.' ); ?> </small>
</ p >
< ? php
}
}
/**
* Links widget class
*
* @ since 2.8 . 0
*/
class WP_Widget_Links extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2009-03-16 23:02:40 +01:00
$widget_ops = array ( 'description' => __ ( " Your blogroll " ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'links' , __ ( 'Links' ), $widget_ops );
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2009-03-16 23:02:40 +01:00
$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 ;
2009-04-08 21:37:33 +02:00
$category = isset ( $instance [ 'category' ]) ? $instance [ 'category' ] : false ;
2012-03-02 14:58:58 +01:00
$orderby = isset ( $instance [ 'orderby' ] ) ? $instance [ 'orderby' ] : 'name' ;
$order = $orderby == 'rating' ? 'DESC' : 'ASC' ;
$limit = isset ( $instance [ 'limit' ] ) ? $instance [ 'limit' ] : - 1 ;
2009-04-08 21:37:33 +02:00
2014-05-15 18:33:15 +02:00
$before_widget = preg_replace ( '/id="[^"]*"/' , 'id="%id"' , $args [ 'before_widget' ] );
2014-03-25 09:53:14 +01:00
/**
* Filter the arguments for the Links widget .
*
* @ since 2.6 . 0
*
* @ see wp_list_bookmarks ()
*
* @ param array $args An array of arguments to retrieve the links list .
*/
wp_list_bookmarks ( apply_filters ( 'widget_links_args' , array (
2014-05-15 18:33:15 +02:00
'title_before' => $args [ 'before_title' ], 'title_after' => $args [ 'after_title' ],
'category_before' => $before_widget , 'category_after' => $args [ 'after_widget' ],
2009-03-16 23:02:40 +01:00
'show_images' => $show_images , 'show_description' => $show_description ,
'show_name' => $show_name , 'show_rating' => $show_rating ,
2012-03-02 14:58:58 +01:00
'category' => $category , 'class' => 'linkcat widget' ,
'orderby' => $orderby , 'order' => $order ,
'limit' => $limit ,
2014-03-25 09:53:14 +01:00
) ) );
2009-03-16 23:02:40 +01:00
}
2009-03-18 03:43:45 +01:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-16 23:02:40 +01:00
$new_instance = ( array ) $new_instance ;
2012-03-02 14:58:58 +01:00
$instance = array ( 'images' => 0 , 'name' => 0 , 'description' => 0 , 'rating' => 0 );
2009-03-16 23:02:40 +01:00
foreach ( $instance as $field => $val ) {
if ( isset ( $new_instance [ $field ]) )
$instance [ $field ] = 1 ;
}
2012-03-02 14:58:58 +01:00
$instance [ 'orderby' ] = 'name' ;
if ( in_array ( $new_instance [ 'orderby' ], array ( 'name' , 'rating' , 'id' , 'rand' ) ) )
$instance [ 'orderby' ] = $new_instance [ 'orderby' ];
$instance [ 'category' ] = intval ( $new_instance [ 'category' ] );
$instance [ 'limit' ] = ! empty ( $new_instance [ 'limit' ] ) ? intval ( $new_instance [ 'limit' ] ) : - 1 ;
2009-03-18 03:43:45 +01:00
2009-03-16 23:02:40 +01:00
return $instance ;
}
2009-03-18 03:43:45 +01:00
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-16 23:02:40 +01:00
//Defaults
2012-03-02 14:58:58 +01:00
$instance = wp_parse_args ( ( array ) $instance , array ( 'images' => true , 'name' => true , 'description' => false , 'rating' => false , 'category' => false , 'orderby' => 'name' , 'limit' => - 1 ) );
$link_cats = get_terms ( 'link_category' );
if ( ! $limit = intval ( $instance [ 'limit' ] ) )
$limit = - 1 ;
2009-03-16 23:02:40 +01:00
?>
< p >
2012-03-02 21:25:12 +01:00
< label for = " <?php echo $this->get_field_id ('category'); ?> " >< ? php _e ( 'Select Link Category:' ); ?> </label>
2009-04-11 16:37:24 +02:00
< select class = " widefat " id = " <?php echo $this->get_field_id ('category'); ?> " name = " <?php echo $this->get_field_name ('category'); ?> " >
2011-11-07 18:28:20 +01:00
< option value = " " >< ? php _ex ( 'All Links' , 'links widget' ); ?> </option>
2009-04-08 21:37:33 +02:00
< ? php
foreach ( $link_cats as $link_cat ) {
2012-09-16 18:51:12 +02:00
echo '<option value="' . intval ( $link_cat -> term_id ) . '"'
. selected ( $instance [ 'category' ], $link_cat -> term_id , false )
2009-04-08 21:37:33 +02:00
. '>' . $link_cat -> name . " </option> \n " ;
}
?>
2012-03-02 14:58:58 +01:00
</ select >
< label for = " <?php echo $this->get_field_id ('orderby'); ?> " >< ? php _e ( 'Sort by:' ); ?> </label>
< select name = " <?php echo $this->get_field_name ('orderby'); ?> " id = " <?php echo $this->get_field_id ('orderby'); ?> " class = " widefat " >
< option value = " name " < ? php selected ( $instance [ 'orderby' ], 'name' ); ?> ><?php _e( 'Link title' ); ?></option>
< option value = " rating " < ? php selected ( $instance [ 'orderby' ], 'rating' ); ?> ><?php _e( 'Link rating' ); ?></option>
< option value = " id " < ? php selected ( $instance [ 'orderby' ], 'id' ); ?> ><?php _e( 'Link ID' ); ?></option>
2012-12-04 15:49:44 +01:00
< option value = " rand " < ? php selected ( $instance [ 'orderby' ], 'rand' ); ?> ><?php _ex( 'Random', 'Links widget' ); ?></option>
2012-03-02 14:58:58 +01:00
</ select >
</ p >
2009-04-11 16:37:24 +02:00
< p >
2009-05-22 18:27:23 +02:00
< input class = " checkbox " type = " checkbox " < ? php checked ( $instance [ 'images' ], true ) ?> id="<?php echo $this->get_field_id('images'); ?>" name="<?php echo $this->get_field_name('images'); ?>" />
< label for = " <?php echo $this->get_field_id ('images'); ?> " >< ? php _e ( 'Show Link Image' ); ?> </label><br />
< input class = " checkbox " type = " checkbox " < ? php checked ( $instance [ 'name' ], true ) ?> id="<?php echo $this->get_field_id('name'); ?>" name="<?php echo $this->get_field_name('name'); ?>" />
< label for = " <?php echo $this->get_field_id ('name'); ?> " >< ? php _e ( 'Show Link Name' ); ?> </label><br />
< input class = " checkbox " type = " checkbox " < ? php checked ( $instance [ 'description' ], true ) ?> id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>" />
< label for = " <?php echo $this->get_field_id ('description'); ?> " >< ? php _e ( 'Show Link Description' ); ?> </label><br />
2009-05-22 18:13:05 +02:00
< input class = " checkbox " type = " checkbox " < ? php checked ( $instance [ 'rating' ], true ) ?> id="<?php echo $this->get_field_id('rating'); ?>" name="<?php echo $this->get_field_name('rating'); ?>" />
2009-05-22 18:27:23 +02:00
< label for = " <?php echo $this->get_field_id ('rating'); ?> " >< ? php _e ( 'Show Link Rating' ); ?> </label>
2009-03-16 23:02:40 +01:00
</ p >
2012-03-02 14:58:58 +01:00
< p >
< label for = " <?php echo $this->get_field_id ('limit'); ?> " >< ? php _e ( 'Number of links to show:' ); ?> </label>
< input id = " <?php echo $this->get_field_id ('limit'); ?> " name = " <?php echo $this->get_field_name ('limit'); ?> " type = " text " value = " <?php echo $limit == -1 ? '' : intval( $limit ); ?> " size = " 3 " />
</ p >
2009-03-16 23:02:40 +01:00
< ? php
}
}
/**
* Search widget class
*
* @ since 2.8 . 0
*/
class WP_Widget_Search extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_search' , 'description' => __ ( " A search form for your site. " ) );
2014-03-05 18:26:17 +01:00
parent :: __construct ( 'search' , _x ( 'Search' , 'Search widget' ), $widget_ops );
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
2011-09-15 11:41:17 +02:00
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? '' : $instance [ 'title' ], $instance , $this -> id_base );
2009-05-11 21:48:56 +02:00
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-03-16 23:02:40 +01:00
// Use current theme search form if it exists
get_search_form ();
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-16 23:02:40 +01:00
}
2009-05-25 01:47:49 +02:00
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-05-11 21:48:56 +02:00
$instance = wp_parse_args ( ( array ) $instance , array ( 'title' => '' ) );
$title = $instance [ 'title' ];
?>
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></label></p>
< ? php
}
2009-05-25 01:47:49 +02:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-05-11 21:48:56 +02:00
$instance = $old_instance ;
$new_instance = wp_parse_args (( array ) $new_instance , array ( 'title' => '' ));
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
return $instance ;
2009-05-25 01:47:49 +02:00
}
2009-03-16 23:02:40 +01:00
}
/**
* Archives widget class
*
* @ since 2.8 . 0
*/
class WP_Widget_Archives extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_archive' , 'description' => __ ( 'A monthly archive of your site’s Posts.' ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'archives' , __ ( 'Archives' ), $widget_ops );
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2011-09-15 11:41:17 +02:00
$c = ! empty ( $instance [ 'count' ] ) ? '1' : '0' ;
$d = ! empty ( $instance [ 'dropdown' ] ) ? '1' : '0' ;
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
2014-05-15 18:33:15 +02:00
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? __ ( 'Archives' ) : $instance [ 'title' ], $instance , $this -> id_base );
2009-03-16 23:02:40 +01:00
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-03-16 23:02:40 +01:00
if ( $d ) {
?>
2014-03-25 09:53:14 +01:00
< select name = " archive-dropdown " onchange = 'document.location.href=this.options[this.selectedIndex].value;' >
< option value = " " >< ? php echo esc_attr ( __ ( 'Select Month' ) ); ?> </option>
< ? php
/**
* Filter the arguments for the Archives widget drop - down .
*
* @ since 2.8 . 0
*
* @ see wp_get_archives ()
*
* @ param array $args An array of Archives widget drop - down arguments .
*/
wp_get_archives ( apply_filters ( 'widget_archives_dropdown_args' , array (
'type' => 'monthly' ,
'format' => 'option' ,
'show_post_count' => $c
) ) );
?>
</ select >
2009-03-16 23:02:40 +01:00
< ? php
} else {
?>
< ul >
2014-03-25 09:53:14 +01:00
< ? php
/**
* Filter the arguments for the Archives widget .
*
* @ since 2.8 . 0
*
* @ see wp_get_archives ()
*
* @ param array $args An array of Archives option arguments .
*/
w p_get_archives ( apply_filters ( 'widget_archives_args' , array (
'type' => 'monthly' ,
'show_post_count' => $c
) ) );
?>
2009-03-16 23:02:40 +01:00
</ ul >
< ? php
}
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-16 23:02:40 +01:00
$instance = $old_instance ;
2009-03-17 01:59:42 +01:00
$new_instance = wp_parse_args ( ( array ) $new_instance , array ( 'title' => '' , 'count' => 0 , 'dropdown' => '' ) );
2009-03-16 23:02:40 +01:00
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
$instance [ 'count' ] = $new_instance [ 'count' ] ? 1 : 0 ;
$instance [ 'dropdown' ] = $new_instance [ 'dropdown' ] ? 1 : 0 ;
return $instance ;
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-16 23:02:40 +01:00
$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"' : '' ;
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> </label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p>
2009-03-16 23:02:40 +01:00
< p >
2010-10-27 03:52:59 +02:00
< input class = " checkbox " type = " checkbox " < ? php echo $dropdown ; ?> id="<?php echo $this->get_field_id('dropdown'); ?>" name="<?php echo $this->get_field_name('dropdown'); ?>" /> <label for="<?php echo $this->get_field_id('dropdown'); ?>"><?php _e('Display as dropdown'); ?></label>
< br />
2009-05-22 18:13:05 +02:00
< input class = " checkbox " type = " checkbox " < ? php echo $count ; ?> id="<?php echo $this->get_field_id('count'); ?>" name="<?php echo $this->get_field_name('count'); ?>" /> <label for="<?php echo $this->get_field_id('count'); ?>"><?php _e('Show post counts'); ?></label>
2009-03-16 23:02:40 +01:00
</ p >
< ? php
}
}
2009-03-16 23:44:30 +01:00
/**
* Meta widget class
*
* Displays log in / out , RSS feed links , etc .
2009-03-18 03:43:45 +01:00
*
2009-03-16 23:44:30 +01:00
* @ since 2.8 . 0
*/
class WP_Widget_Meta extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_meta' , 'description' => __ ( " Login, RSS, & WordPress.org links. " ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'meta' , __ ( 'Meta' ), $widget_ops );
2009-03-16 23:44:30 +01:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ]) ? __ ( 'Meta' ) : $instance [ 'title' ], $instance , $this -> id_base );
2009-03-16 23:44:30 +01:00
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-03-16 23:44:30 +01:00
?>
< ul >
< ? php wp_register (); ?>
< li >< ? php wp_loginout (); ?> </li>
2009-05-05 21:43:53 +02:00
< li >< a href = " <?php bloginfo('rss2_url'); ?> " title = " <?php echo esc_attr(__('Syndicate this site using RSS 2.0')); ?> " >< ? php _e ( 'Entries <abbr title="Really Simple Syndication">RSS</abbr>' ); ?> </a></li>
< li >< a href = " <?php bloginfo('comments_rss2_url'); ?> " title = " <?php echo esc_attr(__('The latest comments to all posts in RSS')); ?> " >< ? php _e ( 'Comments <abbr title="Really Simple Syndication">RSS</abbr>' ); ?> </a></li>
2014-03-25 09:53:14 +01:00
< ? php
/**
* Filter the " Powered by WordPress " text in the Meta widget .
*
* @ since 3.6 . 0
*
* @ param string $title_text Default title text for the WordPress . org link .
*/
echo apply_filters ( 'widget_meta_poweredby' , sprintf ( '<li><a href="%s" title="%s">%s</a></li>' ,
2014-03-03 03:34:27 +01:00
esc_url ( __ ( 'https://wordpress.org/' ) ),
2013-02-15 17:20:14 +01:00
esc_attr__ ( 'Powered by WordPress, state-of-the-art semantic personal publishing platform.' ),
_x ( 'WordPress.org' , 'meta widget link text' )
2014-03-25 09:53:14 +01:00
) );
wp_meta ();
?>
2009-03-16 23:44:30 +01:00
</ ul >
< ? php
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-16 23:44:30 +01:00
}
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-16 23:44:30 +01:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
return $instance ;
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-16 23:44:30 +01:00
$instance = wp_parse_args ( ( array ) $instance , array ( 'title' => '' ) );
$title = strip_tags ( $instance [ 'title' ]);
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> </label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p>
2009-03-16 23:44:30 +01:00
< ? php
}
}
2009-03-17 03:33:08 +01:00
/**
* Calendar widget class
*
* @ since 2.8 . 0
*/
class WP_Widget_Calendar extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_calendar' , 'description' => __ ( 'A calendar of your site’s Posts.' ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'calendar' , __ ( 'Calendar' ), $widget_ops );
2009-03-17 03:33:08 +01:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? '' : $instance [ 'title' ], $instance , $this -> id_base );
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-03-17 03:33:08 +01:00
echo '<div id="calendar_wrap">' ;
get_calendar ();
echo '</div>' ;
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-17 03:33:08 +01:00
}
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-17 03:33:08 +01:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
return $instance ;
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-17 03:33:08 +01:00
$instance = wp_parse_args ( ( array ) $instance , array ( 'title' => '' ) );
$title = strip_tags ( $instance [ 'title' ]);
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> </label>
< input class = " widefat " id = " <?php echo $this->get_field_id ('title'); ?> " name = " <?php echo $this->get_field_name ('title'); ?> " type = " text " value = " <?php echo esc_attr( $title ); ?> " /></ p >
2009-03-17 03:33:08 +01:00
< ? php
}
}
2009-03-16 23:02:40 +01:00
/**
2009-03-17 16:39:36 +01:00
* Text widget class
2009-03-16 23:02:40 +01:00
*
2009-03-17 16:39:36 +01:00
* @ since 2.8 . 0
2009-03-16 23:02:40 +01:00
*/
2009-03-17 16:39:36 +01:00
class WP_Widget_Text extends WP_Widget {
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_text' , 'description' => __ ( 'Arbitrary text or HTML.' ));
2009-03-17 16:39:36 +01:00
$control_ops = array ( 'width' => 400 , 'height' => 350 );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'text' , __ ( 'Text' ), $widget_ops , $control_ops );
2009-03-17 16:39:36 +01:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
2011-09-15 11:41:17 +02:00
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? '' : $instance [ 'title' ], $instance , $this -> id_base );
2014-03-25 09:53:14 +01:00
/**
* Filter the content of the Text widget .
*
* @ since 2.3 . 0
*
* @ param string $widget_text The widget content .
* @ param WP_Widget $instance WP_Widget instance .
*/
2011-09-15 11:41:17 +02:00
$text = apply_filters ( 'widget_text' , empty ( $instance [ 'text' ] ) ? '' : $instance [ 'text' ], $instance );
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( ! empty ( $title ) ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
} ?>
2011-09-15 11:41:17 +02:00
< div class = " textwidget " >< ? php echo ! empty ( $instance [ 'filter' ] ) ? wpautop ( $text ) : $text ; ?> </div>
2009-03-17 16:39:36 +01:00
< ? php
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-17 16:39:36 +01:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-17 16:39:36 +01:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
if ( current_user_can ( 'unfiltered_html' ) )
$instance [ 'text' ] = $new_instance [ 'text' ];
2009-03-16 23:02:40 +01:00
else
2013-03-01 17:28:40 +01:00
$instance [ 'text' ] = stripslashes ( wp_filter_post_kses ( addslashes ( $new_instance [ 'text' ]) ) ); // wp_filter_post_kses() expects slashed
2009-04-20 21:59:46 +02:00
$instance [ 'filter' ] = isset ( $new_instance [ 'filter' ]);
2009-03-17 16:39:36 +01:00
return $instance ;
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-17 16:39:36 +01:00
$instance = wp_parse_args ( ( array ) $instance , array ( 'title' => '' , 'text' => '' ) );
$title = strip_tags ( $instance [ 'title' ]);
2010-11-17 18:12:01 +01:00
$text = esc_textarea ( $instance [ 'text' ]);
2009-03-16 23:02:40 +01:00
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> </label>
< input class = " widefat " id = " <?php echo $this->get_field_id ('title'); ?> " name = " <?php echo $this->get_field_name ('title'); ?> " type = " text " value = " <?php echo esc_attr( $title ); ?> " /></ p >
2009-04-27 11:28:57 +02:00
< textarea class = " widefat " rows = " 16 " cols = " 20 " id = " <?php echo $this->get_field_id ('text'); ?> " name = " <?php echo $this->get_field_name ('text'); ?> " >< ? php echo $text ; ?> </textarea>
2010-01-21 22:37:43 +01:00
< p >< input id = " <?php echo $this->get_field_id ('filter'); ?> " name = " <?php echo $this->get_field_name ('filter'); ?> " type = " checkbox " < ? php checked ( isset ( $instance [ 'filter' ]) ? $instance [ 'filter' ] : 0 ); ?> /> <label for="<?php echo $this->get_field_id('filter'); ?>"><?php _e('Automatically add paragraphs'); ?></label></p>
2009-03-16 23:02:40 +01:00
< ? php
}
}
/**
2009-03-18 02:50:20 +01:00
* Categories widget class
2009-03-16 23:02:40 +01:00
*
2009-03-18 02:50:20 +01:00
* @ since 2.8 . 0
2009-03-16 23:02:40 +01:00
*/
2009-03-18 02:50:20 +01:00
class WP_Widget_Categories extends WP_Widget {
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_categories' , 'description' => __ ( " A list or dropdown of categories. " ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'categories' , __ ( 'Categories' ), $widget_ops );
2009-03-18 02:50:20 +01:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2009-03-16 23:02:40 +01:00
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? __ ( 'Categories' ) : $instance [ 'title' ], $instance , $this -> id_base );
2011-09-15 11:41:17 +02:00
$c = ! empty ( $instance [ 'count' ] ) ? '1' : '0' ;
$h = ! empty ( $instance [ 'hierarchical' ] ) ? '1' : '0' ;
$d = ! empty ( $instance [ 'dropdown' ] ) ? '1' : '0' ;
2009-03-16 23:02:40 +01:00
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-03-16 23:02:40 +01:00
2009-03-18 02:50:20 +01:00
$cat_args = array ( 'orderby' => 'name' , 'show_count' => $c , 'hierarchical' => $h );
2009-03-16 23:02:40 +01:00
2009-03-18 02:50:20 +01:00
if ( $d ) {
$cat_args [ 'show_option_none' ] = __ ( 'Select Category' );
2014-03-25 09:53:14 +01:00
/**
* Filter the arguments for the Categories widget drop - down .
*
* @ since 2.8 . 0
*
* @ see wp_dropdown_categories ()
*
* @ param array $cat_args An array of Categories widget drop - down arguments .
*/
wp_dropdown_categories ( apply_filters ( 'widget_categories_dropdown_args' , $cat_args ) );
2009-03-16 23:02:40 +01:00
?>
< script type = 'text/javascript' >
/* <![CDATA[ */
var dropdown = document . getElementById ( " cat " );
function onCatChange () {
if ( dropdown . options [ dropdown . selectedIndex ] . value > 0 ) {
2010-01-04 18:23:29 +01:00
location . href = " <?php echo home_url(); ?>/?cat= " + dropdown . options [ dropdown . selectedIndex ] . value ;
2009-03-16 23:02:40 +01:00
}
}
dropdown . onchange = onCatChange ;
/* ]]> */
</ script >
< ? php
2009-03-18 02:50:20 +01:00
} else {
2009-03-16 23:02:40 +01:00
?>
< ul >
2009-04-27 11:28:57 +02:00
< ? php
$cat_args [ 'title_li' ] = '' ;
2014-03-25 09:53:14 +01:00
/**
* Filter the arguments for the Categories widget .
*
* @ since 2.8 . 0
*
* @ param array $cat_args An array of Categories widget options .
*/
wp_list_categories ( apply_filters ( 'widget_categories_args' , $cat_args ) );
2009-04-27 11:28:57 +02:00
?>
2009-03-16 23:02:40 +01:00
</ ul >
< ? php
}
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-16 23:02:40 +01:00
}
2009-03-18 03:43:45 +01:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-03-18 02:50:20 +01:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
2010-02-12 21:14:17 +01:00
$instance [ 'count' ] = ! empty ( $new_instance [ 'count' ]) ? 1 : 0 ;
$instance [ 'hierarchical' ] = ! empty ( $new_instance [ 'hierarchical' ]) ? 1 : 0 ;
$instance [ 'dropdown' ] = ! empty ( $new_instance [ 'dropdown' ]) ? 1 : 0 ;
2009-03-16 23:02:40 +01:00
2009-03-18 02:50:20 +01:00
return $instance ;
2009-03-16 23:02:40 +01:00
}
2009-03-18 03:43:45 +01:00
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-18 02:50:20 +01:00
//Defaults
$instance = wp_parse_args ( ( array ) $instance , array ( 'title' => '' ) );
2009-05-05 21:43:53 +02:00
$title = esc_attr ( $instance [ 'title' ] );
2009-07-31 11:35:59 +02:00
$count = isset ( $instance [ 'count' ]) ? ( bool ) $instance [ 'count' ] : false ;
$hierarchical = isset ( $instance [ 'hierarchical' ] ) ? ( bool ) $instance [ 'hierarchical' ] : false ;
$dropdown = isset ( $instance [ 'dropdown' ] ) ? ( bool ) $instance [ 'dropdown' ] : false ;
2009-03-16 23:02:40 +01:00
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ); ?> </label>
< input class = " widefat " id = " <?php echo $this->get_field_id ('title'); ?> " name = " <?php echo $this->get_field_name ('title'); ?> " type = " text " value = " <?php echo $title ; ?> " /></ p >
2009-04-27 11:28:57 +02:00
2009-05-22 18:13:05 +02:00
< p >< input type = " checkbox " class = " checkbox " id = " <?php echo $this->get_field_id ('dropdown'); ?> " name = " <?php echo $this->get_field_name ('dropdown'); ?> " < ? php checked ( $dropdown ); ?> />
2010-10-27 03:52:59 +02:00
< label for = " <?php echo $this->get_field_id ('dropdown'); ?> " >< ? php _e ( 'Display as dropdown' ); ?> </label><br />
2009-04-27 11:28:57 +02:00
< input type = " checkbox " class = " checkbox " id = " <?php echo $this->get_field_id ('count'); ?> " name = " <?php echo $this->get_field_name ('count'); ?> " < ? php checked ( $count ); ?> />
2009-05-22 18:13:05 +02:00
< label for = " <?php echo $this->get_field_id ('count'); ?> " >< ? php _e ( 'Show post counts' ); ?> </label><br />
2009-04-27 11:28:57 +02:00
< input type = " checkbox " class = " checkbox " id = " <?php echo $this->get_field_id ('hierarchical'); ?> " name = " <?php echo $this->get_field_name ('hierarchical'); ?> " < ? php checked ( $hierarchical ); ?> />
2009-05-22 18:13:05 +02:00
< label for = " <?php echo $this->get_field_id ('hierarchical'); ?> " >< ? php _e ( 'Show hierarchy' ); ?> </label></p>
2009-03-16 23:02:40 +01:00
< ? php
}
}
/**
2009-04-25 14:43:51 +02:00
* Recent_Posts widget class
2009-03-16 23:02:40 +01:00
*
2009-04-25 14:43:51 +02:00
* @ since 2.8 . 0
2009-03-16 23:02:40 +01:00
*/
2009-04-25 14:43:51 +02:00
class WP_Widget_Recent_Posts extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_recent_entries' , 'description' => __ ( " Your site’s most recent Posts. " ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'recent-posts' , __ ( 'Recent Posts' ), $widget_ops );
2009-04-26 07:34:06 +02:00
$this -> alt_option_name = 'widget_recent_entries' ;
2009-04-25 14:43:51 +02:00
2012-10-04 22:00:16 +02:00
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' ) );
2009-04-25 14:43:51 +02:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2014-04-06 20:48:16 +02:00
$cache = array ();
if ( ! $this -> is_preview () ) {
$cache = wp_cache_get ( 'widget_recent_posts' , 'widget' );
}
2009-04-27 10:46:47 +02:00
2014-04-06 20:48:16 +02:00
if ( ! is_array ( $cache ) ) {
2009-04-26 22:09:08 +02:00
$cache = array ();
2014-04-06 20:48:16 +02:00
}
2009-04-27 10:46:47 +02:00
2014-04-06 20:48:16 +02:00
if ( ! isset ( $args [ 'widget_id' ] ) ) {
2011-09-15 12:08:43 +02:00
$args [ 'widget_id' ] = $this -> id ;
2014-04-06 20:48:16 +02:00
}
2011-09-15 12:08:43 +02:00
2011-09-15 12:43:22 +02:00
if ( isset ( $cache [ $args [ 'widget_id' ] ] ) ) {
2011-09-15 11:41:17 +02:00
echo $cache [ $args [ 'widget_id' ] ];
2009-06-26 16:35:40 +02:00
return ;
}
2009-03-16 23:02:40 +01:00
2009-04-25 14:43:51 +02:00
ob_start ();
2009-03-16 23:02:40 +01:00
2013-03-04 03:14:23 +01:00
$title = ( ! empty ( $instance [ 'title' ] ) ) ? $instance [ 'title' ] : __ ( 'Recent Posts' );
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
2013-03-04 03:14:23 +01:00
$title = apply_filters ( 'widget_title' , $title , $instance , $this -> id_base );
2014-03-25 09:53:14 +01:00
2014-03-17 18:01:14 +01:00
$number = ( ! empty ( $instance [ 'number' ] ) ) ? absint ( $instance [ 'number' ] ) : 5 ;
2013-03-04 03:14:23 +01:00
if ( ! $number )
2014-03-17 18:01:14 +01:00
$number = 5 ;
2012-09-21 12:05:54 +02:00
$show_date = isset ( $instance [ 'show_date' ] ) ? $instance [ 'show_date' ] : false ;
2009-04-26 07:34:06 +02:00
2014-03-25 09:53:14 +01:00
/**
* Filter the arguments for the Recent Posts widget .
*
* @ since 3.4 . 0
*
* @ see WP_Query :: get_posts ()
*
* @ param array $args An array of arguments used to retrieve the recent posts .
*/
$r = new WP_Query ( apply_filters ( 'widget_posts_args' , array (
'posts_per_page' => $number ,
'no_found_rows' => true ,
'post_status' => 'publish' ,
'ignore_sticky_posts' => true
) ) );
2009-04-25 14:43:51 +02:00
if ( $r -> have_posts ()) :
2009-03-16 23:02:40 +01:00
?>
2014-05-15 18:33:15 +02:00
< ? php echo $args [ 'before_widget' ]; ?>
< ? php if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
} ?>
2009-04-27 11:28:57 +02:00
< ul >
2012-09-21 12:05:54 +02:00
< ? php while ( $r -> have_posts () ) : $r -> the_post (); ?>
< li >
2013-10-03 00:51:10 +02:00
< a href = " <?php the_permalink(); ?> " >< ? php get_the_title () ? the_title () : the_ID (); ?> </a>
2012-09-21 12:05:54 +02:00
< ? php if ( $show_date ) : ?>
< span class = " post-date " >< ? php echo get_the_date (); ?> </span>
< ? php endif ; ?>
</ li >
2009-04-27 11:28:57 +02:00
< ? php endwhile ; ?>
</ ul >
2014-05-15 18:33:15 +02:00
< ? php echo $args [ 'after_widget' ]; ?>
2009-03-16 23:02:40 +01:00
< ? php
2010-05-13 22:39:54 +02:00
// Reset the global $the_post as this query will have stomped on it
wp_reset_postdata ();
2009-04-25 14:43:51 +02:00
endif ;
2009-04-26 07:34:06 +02:00
2014-04-06 20:48:16 +02:00
if ( ! $this -> is_preview () ) {
$cache [ $args [ 'widget_id' ] ] = ob_get_flush ();
wp_cache_set ( 'widget_recent_posts' , $cache , 'widget' );
} else {
2014-04-24 21:48:19 +02:00
ob_end_flush ();
2014-04-06 20:48:16 +02:00
}
2009-04-25 14:43:51 +02:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-04-25 14:43:51 +02:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
$instance [ 'number' ] = ( int ) $new_instance [ 'number' ];
2013-06-23 10:20:08 +02:00
$instance [ 'show_date' ] = isset ( $new_instance [ 'show_date' ] ) ? ( bool ) $new_instance [ 'show_date' ] : false ;
2009-04-25 14:43:51 +02:00
$this -> flush_widget_cache ();
2009-04-27 10:46:47 +02:00
2009-04-26 07:34:06 +02:00
$alloptions = wp_cache_get ( 'alloptions' , 'options' );
if ( isset ( $alloptions [ 'widget_recent_entries' ]) )
delete_option ( 'widget_recent_entries' );
2009-03-16 23:02:40 +01:00
2009-04-25 14:43:51 +02:00
return $instance ;
2009-03-16 23:02:40 +01:00
}
2009-04-25 14:43:51 +02:00
2014-05-19 19:30:17 +02:00
public function flush_widget_cache () {
2009-04-26 22:09:08 +02:00
wp_cache_delete ( 'widget_recent_posts' , 'widget' );
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2012-09-21 12:05:54 +02:00
$title = isset ( $instance [ 'title' ] ) ? esc_attr ( $instance [ 'title' ] ) : '' ;
$number = isset ( $instance [ 'number' ] ) ? absint ( $instance [ 'number' ] ) : 5 ;
$show_date = isset ( $instance [ 'show_date' ] ) ? ( bool ) $instance [ 'show_date' ] : false ;
2009-04-25 14:43:51 +02:00
?>
2012-09-21 12:05:54 +02:00
< p >< label for = " <?php echo $this->get_field_id ( 'title' ); ?> " >< ? php _e ( 'Title:' ); ?> </label>
< input class = " widefat " id = " <?php echo $this->get_field_id ( 'title' ); ?> " name = " <?php echo $this->get_field_name ( 'title' ); ?> " type = " text " value = " <?php echo $title ; ?> " /></ p >
< p >< label for = " <?php echo $this->get_field_id ( 'number' ); ?> " >< ? php _e ( 'Number of posts to show:' ); ?> </label>
< input id = " <?php echo $this->get_field_id ( 'number' ); ?> " name = " <?php echo $this->get_field_name ( 'number' ); ?> " type = " text " value = " <?php echo $number ; ?> " size = " 3 " /></ p >
2009-05-22 18:13:05 +02:00
2012-09-21 12:05:54 +02:00
< p >< input class = " checkbox " type = " checkbox " < ? php checked ( $show_date ); ?> id="<?php echo $this->get_field_id( 'show_date' ); ?>" name="<?php echo $this->get_field_name( 'show_date' ); ?>" />
2012-09-24 21:16:53 +02:00
< label for = " <?php echo $this->get_field_id ( 'show_date' ); ?> " >< ? php _e ( 'Display post date?' ); ?> </label></p>
2009-03-16 23:02:40 +01:00
< ? php
2009-04-25 14:43:51 +02:00
}
2009-03-16 23:02:40 +01:00
}
/**
2009-04-26 22:09:08 +02:00
* Recent_Comments widget class
2009-03-16 23:02:40 +01:00
*
2009-04-26 22:09:08 +02:00
* @ since 2.8 . 0
2009-03-16 23:02:40 +01:00
*/
2009-04-26 22:09:08 +02:00
class WP_Widget_Recent_Comments extends WP_Widget {
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'classname' => 'widget_recent_comments' , 'description' => __ ( 'Your site’s most recent comments.' ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'recent-comments' , __ ( 'Recent Comments' ), $widget_ops );
2009-04-26 22:09:08 +02:00
$this -> alt_option_name = 'widget_recent_comments' ;
if ( is_active_widget ( false , false , $this -> id_base ) )
2012-10-04 22:00:16 +02:00
add_action ( 'wp_head' , array ( $this , 'recent_comments_style' ) );
2009-04-26 22:09:08 +02:00
2012-10-04 22:00:16 +02:00
add_action ( 'comment_post' , array ( $this , 'flush_widget_cache' ) );
2013-08-17 11:30:09 +02:00
add_action ( 'edit_comment' , array ( $this , 'flush_widget_cache' ) );
2012-10-04 22:00:16 +02:00
add_action ( 'transition_comment_status' , array ( $this , 'flush_widget_cache' ) );
2009-04-26 22:09:08 +02:00
}
2009-04-27 10:46:47 +02:00
2014-05-19 19:30:17 +02:00
public function recent_comments_style () {
2014-03-25 09:53:14 +01:00
/**
* Filter the Recent Comments default widget styles .
*
* @ since 3.1 . 0
*
* @ param bool $active Whether the widget is active . Default true .
* @ param string $id_base The widget ID .
*/
2010-11-21 14:55:11 +01:00
if ( ! current_theme_supports ( 'widgets' ) // Temp hack #14876
|| ! apply_filters ( 'show_recent_comments_widget_style' , true , $this -> id_base ) )
return ;
?>
2009-04-26 22:09:08 +02:00
< style type = " text/css " >. recentcomments a { display : inline ! important ; padding : 0 ! important ; margin : 0 ! important ;} </ style >
< ? php
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function flush_widget_cache () {
2010-05-06 21:31:45 +02:00
wp_cache_delete ( 'widget_recent_comments' , 'widget' );
2009-04-26 22:09:08 +02:00
}
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2010-05-06 21:31:45 +02:00
global $comments , $comment ;
2010-05-26 04:42:15 +02:00
2014-04-06 20:48:16 +02:00
$cache = array ();
if ( ! $this -> is_preview () ) {
$cache = wp_cache_get ( 'widget_recent_comments' , 'widget' );
}
if ( ! is_array ( $cache ) ) {
2010-05-06 21:31:45 +02:00
$cache = array ();
2014-04-06 20:48:16 +02:00
}
2010-05-26 04:42:15 +02:00
2011-09-15 12:08:43 +02:00
if ( ! isset ( $args [ 'widget_id' ] ) )
$args [ 'widget_id' ] = $this -> id ;
2011-09-15 12:43:22 +02:00
if ( isset ( $cache [ $args [ 'widget_id' ] ] ) ) {
2011-09-15 11:41:17 +02:00
echo $cache [ $args [ 'widget_id' ] ];
2010-05-06 21:31:45 +02:00
return ;
}
2009-04-27 10:46:47 +02:00
2014-03-17 18:01:14 +01:00
$output = '' ;
2009-04-27 10:46:47 +02:00
2013-03-04 03:14:23 +01:00
$title = ( ! empty ( $instance [ 'title' ] ) ) ? $instance [ 'title' ] : __ ( 'Recent Comments' );
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
2013-03-04 03:14:23 +01:00
$title = apply_filters ( 'widget_title' , $title , $instance , $this -> id_base );
2014-03-25 09:53:14 +01:00
2013-03-04 03:14:23 +01:00
$number = ( ! empty ( $instance [ 'number' ] ) ) ? absint ( $instance [ 'number' ] ) : 5 ;
if ( ! $number )
2014-03-17 18:01:14 +01:00
$number = 5 ;
2009-04-27 10:46:47 +02:00
2014-03-25 09:53:14 +01:00
/**
* Filter the arguments for the Recent Comments widget .
*
* @ since 3.4 . 0
*
* @ see get_comments ()
*
* @ param array $comment_args An array of arguments used to retrieve the recent comments .
*/
$comments = get_comments ( apply_filters ( 'widget_comments_args' , array (
'number' => $number ,
'status' => 'approve' ,
'post_status' => 'publish'
) ) );
2014-05-15 18:33:15 +02:00
$output .= $args [ 'before_widget' ];
if ( $title ) {
$output .= $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2010-05-06 21:31:45 +02:00
$output .= '<ul id="recentcomments">' ;
2010-05-26 04:42:15 +02:00
if ( $comments ) {
2012-10-23 16:18:37 +02:00
// Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
$post_ids = array_unique ( wp_list_pluck ( $comments , 'comment_post_ID' ) );
_prime_post_caches ( $post_ids , strpos ( get_option ( 'permalink_structure' ), '%category%' ), false );
2010-05-06 21:31:45 +02:00
foreach ( ( array ) $comments as $comment ) {
2014-07-19 04:44:14 +02:00
$output .= '<li class="recentcomments">' ;
/* translators: comments widget: 1: comment author, 2: post link */
$output .= sprintf ( _x ( '%1$s on %2$s' , 'widgets' ),
'<span class="comment-author-link">' . get_comment_author_link () . '</span>' ,
'<a href="' . esc_url ( get_comment_link ( $comment -> comment_ID ) ) . '">' . get_the_title ( $comment -> comment_post_ID ) . '</a>'
);
$output .= '</li>' ;
2010-05-06 21:31:45 +02:00
}
2014-03-17 18:01:14 +01:00
}
2010-05-06 21:31:45 +02:00
$output .= '</ul>' ;
2014-05-15 18:33:15 +02:00
$output .= $args [ 'after_widget' ];
2010-05-06 21:31:45 +02:00
echo $output ;
2014-04-06 20:48:16 +02:00
if ( ! $this -> is_preview () ) {
$cache [ $args [ 'widget_id' ] ] = $output ;
wp_cache_set ( 'widget_recent_comments' , $cache , 'widget' );
}
2009-04-26 22:09:08 +02:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2009-04-26 22:09:08 +02:00
$instance = $old_instance ;
$instance [ 'title' ] = strip_tags ( $new_instance [ 'title' ]);
2010-12-14 18:58:47 +01:00
$instance [ 'number' ] = absint ( $new_instance [ 'number' ] );
2009-04-26 22:09:08 +02:00
$this -> flush_widget_cache ();
2009-03-16 23:02:40 +01:00
2009-04-26 22:09:08 +02:00
$alloptions = wp_cache_get ( 'alloptions' , 'options' );
if ( isset ( $alloptions [ 'widget_recent_comments' ]) )
delete_option ( 'widget_recent_comments' );
return $instance ;
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2013-03-04 03:14:23 +01:00
$title = isset ( $instance [ 'title' ] ) ? esc_attr ( $instance [ 'title' ] ) : '' ;
$number = isset ( $instance [ 'number' ] ) ? absint ( $instance [ 'number' ] ) : 5 ;
2009-03-16 23:02:40 +01:00
?>
2013-03-04 03:14:23 +01:00
< p >< label for = " <?php echo $this->get_field_id ( 'title' ); ?> " >< ? php _e ( 'Title:' ); ?> </label>
< input class = " widefat " id = " <?php echo $this->get_field_id ( 'title' ); ?> " name = " <?php echo $this->get_field_name ( 'title' ); ?> " type = " text " value = " <?php echo $title ; ?> " /></ p >
2009-05-22 18:13:05 +02:00
2013-03-04 03:14:23 +01:00
< p >< label for = " <?php echo $this->get_field_id ( 'number' ); ?> " >< ? php _e ( 'Number of comments to show:' ); ?> </label>
< input id = " <?php echo $this->get_field_id ( 'number' ); ?> " name = " <?php echo $this->get_field_name ( 'number' ); ?> " type = " text " value = " <?php echo $number ; ?> " size = " 3 " /></ p >
2009-03-16 23:02:40 +01:00
< ? php
2009-04-26 22:09:08 +02:00
}
2009-03-16 23:02:40 +01:00
}
/**
2009-04-27 10:46:47 +02:00
* RSS widget class
2009-03-16 23:02:40 +01:00
*
2009-04-27 10:46:47 +02:00
* @ since 2.8 . 0
2009-03-16 23:02:40 +01:00
*/
2009-04-27 10:46:47 +02:00
class WP_Widget_RSS extends WP_Widget {
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'description' => __ ( 'Entries from any RSS or Atom feed.' ) );
2009-04-27 10:46:47 +02:00
$control_ops = array ( 'width' => 400 , 'height' => 200 );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'rss' , __ ( 'RSS' ), $widget_ops , $control_ops );
2009-04-27 10:46:47 +02:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2009-03-16 23:02:40 +01:00
2009-04-27 10:46:47 +02:00
if ( isset ( $instance [ 'error' ]) && $instance [ 'error' ] )
return ;
2009-03-16 23:02:40 +01:00
2011-09-15 11:41:17 +02:00
$url = ! empty ( $instance [ 'url' ] ) ? $instance [ 'url' ] : '' ;
2009-04-27 10:46:47 +02:00
while ( stristr ( $url , 'http' ) != $url )
$url = substr ( $url , 1 );
if ( empty ( $url ) )
return ;
2011-01-11 22:37:12 +01:00
// self-url destruction sequence
2011-04-29 16:44:43 +02:00
if ( in_array ( untrailingslashit ( $url ), array ( site_url (), home_url () ) ) )
2011-01-11 22:37:12 +01:00
return ;
2009-04-27 10:46:47 +02:00
$rss = fetch_feed ( $url );
$title = $instance [ 'title' ];
$desc = '' ;
$link = '' ;
if ( ! is_wp_error ( $rss ) ) {
2009-05-05 21:43:53 +02:00
$desc = esc_attr ( strip_tags ( @ html_entity_decode ( $rss -> get_description (), ENT_QUOTES , get_option ( 'blog_charset' ))));
2009-04-27 10:46:47 +02:00
if ( empty ( $title ) )
2009-07-11 06:18:26 +02:00
$title = esc_html ( strip_tags ( $rss -> get_title ()));
2009-05-18 18:00:33 +02:00
$link = esc_url ( strip_tags ( $rss -> get_permalink ()));
2009-04-27 10:46:47 +02:00
while ( stristr ( $link , 'http' ) != $link )
$link = substr ( $link , 1 );
}
2009-03-16 23:02:40 +01:00
if ( empty ( $title ) )
2009-04-27 10:46:47 +02:00
$title = empty ( $desc ) ? __ ( 'Unknown Feed' ) : $desc ;
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters ( 'widget_title' , $title , $instance , $this -> id_base );
2009-05-18 18:00:33 +02:00
$url = esc_url ( strip_tags ( $url ));
2012-11-09 03:06:59 +01:00
$icon = includes_url ( 'images/rss.png' );
2009-05-05 05:59:08 +02:00
if ( $title )
2010-06-10 19:49:55 +02:00
$title = " <a class='rsswidget' href=' $url ' title=' " . esc_attr__ ( 'Syndicate this content' ) . " '><img style='border:0' width='14' height='14' src=' $icon ' alt='RSS' /></a> <a class='rsswidget' href=' $link ' title=' $desc '> $title </a> " ;
2009-04-27 10:46:47 +02:00
2014-05-15 21:36:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2009-04-27 10:46:47 +02:00
wp_widget_rss_output ( $rss , $instance );
2014-05-15 21:36:15 +02:00
echo $args [ 'after_widget' ];
2009-12-22 00:36:12 +01:00
if ( ! is_wp_error ( $rss ) )
$rss -> __destruct ();
2009-11-16 23:42:58 +01:00
unset ( $rss );
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2011-09-15 11:41:17 +02:00
$testurl = ( isset ( $new_instance [ 'url' ] ) && ( ! isset ( $old_instance [ 'url' ] ) || ( $new_instance [ 'url' ] != $old_instance [ 'url' ] ) ) );
2009-04-27 10:46:47 +02:00
return wp_widget_rss_process ( $new_instance , $testurl );
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2009-03-16 23:02:40 +01:00
2009-04-27 10:46:47 +02:00
if ( empty ( $instance ) )
2009-05-22 14:08:51 +02:00
$instance = array ( 'title' => '' , 'url' => '' , 'items' => 10 , 'error' => false , 'show_summary' => 0 , 'show_author' => 0 , 'show_date' => 0 );
$instance [ 'number' ] = $this -> number ;
2009-04-27 10:46:47 +02:00
wp_widget_rss_form ( $instance );
}
2009-03-16 23:02:40 +01:00
}
/**
* 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 ) ) {
2009-04-27 10:46:47 +02:00
if ( is_admin () || current_user_can ( 'manage_options' ) )
echo '<p>' . sprintf ( __ ( '<strong>RSS Error</strong>: %s' ), $rss -> get_error_message () ) . '</p>' ;
2009-03-16 23:02:40 +01:00
return ;
}
2014-05-15 21:42:13 +02:00
$default_args = array ( 'show_author' => 0 , 'show_date' => 0 , 'show_summary' => 0 , 'items' => 0 );
2009-03-16 23:02:40 +01:00
$args = wp_parse_args ( $args , $default_args );
2014-05-15 21:42:13 +02:00
$items = ( int ) $args [ 'items' ];
2009-03-16 23:02:40 +01:00
if ( $items < 1 || 20 < $items )
$items = 10 ;
2014-05-15 21:42:13 +02:00
$show_summary = ( int ) $args [ 'show_summary' ];
$show_author = ( int ) $args [ 'show_author' ];
$show_date = ( int ) $args [ 'show_date' ];
2009-03-16 23:02:40 +01:00
if ( ! $rss -> get_item_quantity () ) {
2012-11-07 20:37:54 +01:00
echo '<ul><li>' . __ ( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</li></ul>' ;
2010-01-15 23:11:12 +01:00
$rss -> __destruct ();
2009-11-16 23:42:58 +01:00
unset ( $rss );
2009-03-16 23:02:40 +01:00
return ;
}
echo '<ul>' ;
2014-05-27 13:08:14 +02:00
foreach ( $rss -> get_items ( 0 , $items ) as $item ) {
2009-03-16 23:02:40 +01:00
$link = $item -> get_link ();
2014-05-27 13:08:14 +02:00
while ( stristr ( $link , 'http' ) != $link ) {
$link = substr ( $link , 1 );
}
$link = esc_url ( strip_tags ( $link ) );
$title = esc_html ( trim ( strip_tags ( $item -> get_title () ) ) );
if ( empty ( $title ) ) {
$title = __ ( 'Untitled' );
}
2009-03-16 23:02:40 +01:00
2014-03-24 22:08:15 +01:00
$desc = @ html_entity_decode ( $item -> get_description (), ENT_QUOTES , get_option ( 'blog_charset' ) );
2014-05-27 13:08:14 +02:00
$desc = esc_attr ( wp_trim_words ( $desc , 55 , ' […]' ) );
2010-02-23 11:30:21 +01:00
2014-03-24 22:08:15 +01:00
$summary = '' ;
if ( $show_summary ) {
$summary = $desc ;
2010-02-23 11:30:21 +01:00
2014-05-27 13:08:14 +02:00
// Change existing [...] to […].
2014-03-24 22:08:15 +01:00
if ( '[...]' == substr ( $summary , - 5 ) ) {
$summary = substr ( $summary , 0 , - 5 ) . '[…]' ;
}
2009-03-16 23:02:40 +01:00
2014-03-24 22:08:15 +01:00
$summary = '<div class="rssSummary">' . esc_html ( $summary ) . '</div>' ;
2009-03-16 23:02:40 +01:00
}
$date = '' ;
if ( $show_date ) {
2010-11-24 12:53:12 +01:00
$date = $item -> get_date ( 'U' );
2009-03-16 23:02:40 +01:00
if ( $date ) {
2010-11-24 12:53:12 +01:00
$date = ' <span class="rss-date">' . date_i18n ( get_option ( 'date_format' ), $date ) . '</span>' ;
2009-03-16 23:02:40 +01:00
}
}
$author = '' ;
if ( $show_author ) {
$author = $item -> get_author ();
2009-05-27 23:51:25 +02:00
if ( is_object ( $author ) ) {
$author = $author -> get_name ();
$author = ' <cite>' . esc_html ( strip_tags ( $author ) ) . '</cite>' ;
}
2009-03-16 23:02:40 +01:00
}
if ( $link == '' ) {
echo " <li> $title { $date } { $summary } { $author } </li> " ;
2014-03-24 22:08:15 +01:00
} elseif ( $show_summary ) {
echo " <li><a class='rsswidget' href=' $link '> $title </a> { $date } { $summary } { $author } </li> " ;
2009-03-16 23:02:40 +01:00
} else {
2014-03-24 22:08:15 +01:00
echo " <li><a class='rsswidget' href=' $link ' title=' $desc '> $title </a> { $date } { $author } </li> " ;
2009-03-16 23:02:40 +01:00
}
}
echo '</ul>' ;
2010-01-15 23:11:12 +01:00
$rss -> __destruct ();
2009-11-16 23:42:58 +01:00
unset ( $rss );
2009-03-16 23:02:40 +01:00
}
/**
* 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 );
2014-06-20 19:29:14 +02:00
$args [ 'number' ] = esc_attr ( $args [ 'number' ] );
$args [ 'title' ] = isset ( $args [ 'title' ] ) ? esc_attr ( $args [ 'title' ] ) : '' ;
$args [ 'url' ] = isset ( $args [ 'url' ] ) ? esc_url ( $args [ 'url' ] ) : '' ;
$args [ 'items' ] = isset ( $args [ 'items' ] ) ? ( int ) $args [ 'items' ] : 0 ;
if ( $args [ 'items' ] < 1 || 20 < $args [ 'items' ] ) {
$args [ 'items' ] = 10 ;
2014-05-16 17:38:14 +02:00
}
2014-06-20 19:29:14 +02:00
$args [ 'show_summary' ] = isset ( $args [ 'show_summary' ] ) ? ( int ) $args [ 'show_summary' ] : ( int ) $inputs [ 'show_summary' ];
$args [ 'show_author' ] = isset ( $args [ 'show_author' ] ) ? ( int ) $args [ 'show_author' ] : ( int ) $inputs [ 'show_author' ];
$args [ 'show_date' ] = isset ( $args [ 'show_date' ] ) ? ( int ) $args [ 'show_date' ] : ( int ) $inputs [ 'show_date' ];
2009-03-16 23:02:40 +01:00
2014-05-16 17:38:14 +02:00
if ( ! empty ( $args [ 'error' ] ) ) {
echo '<p class="widget-error"><strong>' . sprintf ( __ ( 'RSS Error: %s' ), $args [ 'error' ] ) . '</strong></p>' ;
}
2009-03-16 23:02:40 +01:00
if ( $inputs [ 'url' ] ) :
?>
2014-06-20 19:29:14 +02:00
< p >< label for = " rss-url-<?php echo $args['number'] ; ?> " >< ? php _e ( 'Enter the RSS feed URL here:' ); ?> </label>
< input class = " widefat " id = " rss-url-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][url] " type = " text " value = " <?php echo $args['url'] ; ?> " /></ p >
2009-03-16 23:02:40 +01:00
< ? php endif ; if ( $inputs [ 'title' ] ) : ?>
2014-06-20 19:29:14 +02:00
< p >< label for = " rss-title-<?php echo $args['number'] ; ?> " >< ? php _e ( 'Give the feed a title (optional):' ); ?> </label>
< input class = " widefat " id = " rss-title-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][title] " type = " text " value = " <?php echo $args['title'] ; ?> " /></ p >
2009-03-16 23:02:40 +01:00
< ? php endif ; if ( $inputs [ 'items' ] ) : ?>
2014-06-20 19:29:14 +02:00
< p >< label for = " rss-items-<?php echo $args['number'] ; ?> " >< ? php _e ( 'How many items would you like to display?' ); ?> </label>
< select id = " rss-items-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][items] " >
2009-04-27 11:28:57 +02:00
< ? php
2014-06-20 19:29:14 +02:00
for ( $i = 1 ; $i <= 20 ; ++ $i ) {
echo " <option value=' $i ' " . selected ( $args [ 'items' ], $i , false ) . " > $i </option> " ;
}
2009-04-27 11:28:57 +02:00
?>
2009-05-22 18:13:05 +02:00
</ select ></ p >
2009-03-16 23:02:40 +01:00
< ? php endif ; if ( $inputs [ 'show_summary' ] ) : ?>
2014-06-20 19:29:14 +02:00
< p >< input id = " rss-show-summary-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][show_summary] " type = " checkbox " value = " 1 " < ? php checked ( $args [ 'show_summary' ] ); ?> />
< label for = " rss-show-summary-<?php echo $args['number'] ; ?> " >< ? php _e ( 'Display item content?' ); ?> </label></p>
2009-03-16 23:02:40 +01:00
< ? php endif ; if ( $inputs [ 'show_author' ] ) : ?>
2014-06-20 19:29:14 +02:00
< p >< input id = " rss-show-author-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][show_author] " type = " checkbox " value = " 1 " < ? php checked ( $args [ 'show_author' ] ); ?> />
< label for = " rss-show-author-<?php echo $args['number'] ; ?> " >< ? php _e ( 'Display item author if available?' ); ?> </label></p>
2009-03-16 23:02:40 +01:00
< ? php endif ; if ( $inputs [ 'show_date' ] ) : ?>
2014-06-20 19:29:14 +02:00
< p >< input id = " rss-show-date-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][show_date] " type = " checkbox " value = " 1 " < ? php checked ( $args [ 'show_date' ] ); ?> />
< label for = " rss-show-date-<?php echo $args['number'] ; ?> " >< ? php _e ( 'Display item date?' ); ?> </label></p>
2009-03-16 23:02:40 +01:00
< ? php
endif ;
foreach ( array_keys ( $default_inputs ) as $input ) :
if ( 'hidden' === $inputs [ $input ] ) :
$id = str_replace ( '_' , '-' , $input );
?>
2014-06-20 19:29:14 +02:00
< input type = " hidden " id = " rss-<?php echo $id ; ?>-<?php echo $args['number'] ; ?> " name = " widget-rss[<?php echo $args['number'] ; ?>][<?php echo $input ; ?>] " value = " <?php echo $args [ $input ]; ?> " />
2009-03-16 23:02:40 +01:00
< ? php
endif ;
endforeach ;
}
/**
* Process RSS feed widget data and optionally retrieve feed items .
*
* The feed widget can not have more than 20 items or it will reset back to the
* default , which is 10.
*
* The resulting array has the feed title , feed url , feed link ( from channel ),
* feed items , error ( if any ), and whether to show summary , author , and date .
* All respectively in the order of the array elements .
*
* @ since 2.5 . 0
*
* @ param array $widget_rss RSS widget feed data . Expects unescaped data .
* @ param bool $check_feed Optional , default is true . Whether to check feed for errors .
* @ return array
*/
function wp_widget_rss_process ( $widget_rss , $check_feed = true ) {
$items = ( int ) $widget_rss [ 'items' ];
if ( $items < 1 || 20 < $items )
$items = 10 ;
2013-09-07 20:17:10 +02:00
$url = esc_url_raw ( strip_tags ( $widget_rss [ 'url' ] ) );
$title = isset ( $widget_rss [ 'title' ] ) ? trim ( strip_tags ( $widget_rss [ 'title' ] ) ) : '' ;
$show_summary = isset ( $widget_rss [ 'show_summary' ] ) ? ( int ) $widget_rss [ 'show_summary' ] : 0 ;
$show_author = isset ( $widget_rss [ 'show_author' ] ) ? ( int ) $widget_rss [ 'show_author' ] : 0 ;
$show_date = isset ( $widget_rss [ 'show_date' ] ) ? ( int ) $widget_rss [ 'show_date' ] : 0 ;
2009-03-16 23:02:40 +01:00
if ( $check_feed ) {
$rss = fetch_feed ( $url );
$error = false ;
$link = '' ;
if ( is_wp_error ( $rss ) ) {
$error = $rss -> get_error_message ();
} else {
2009-05-18 18:00:33 +02:00
$link = esc_url ( strip_tags ( $rss -> get_permalink ()));
2009-03-16 23:02:40 +01:00
while ( stristr ( $link , 'http' ) != $link )
$link = substr ( $link , 1 );
2009-11-18 22:52:38 +01:00
$rss -> __destruct ();
unset ( $rss );
2009-03-16 23:02:40 +01:00
}
}
return compact ( 'title' , 'url' , 'link' , 'items' , 'error' , 'show_summary' , 'show_author' , 'show_date' );
}
/**
2009-04-27 11:28:57 +02:00
* Tag cloud widget class
2009-03-16 23:02:40 +01:00
*
2009-04-27 11:28:57 +02:00
* @ since 2.8 . 0
2009-03-16 23:02:40 +01:00
*/
2009-04-27 11:28:57 +02:00
class WP_Widget_Tag_Cloud extends WP_Widget {
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'description' => __ ( " A cloud of your most used tags. " ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'tag_cloud' , __ ( 'Tag Cloud' ), $widget_ops );
2009-04-27 11:28:57 +02:00
}
2009-03-16 23:02:40 +01:00
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2010-02-21 03:47:58 +01:00
$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 );
2010-05-14 02:34:04 +02:00
$title = $tax -> labels -> name ;
2010-02-21 03:47:58 +01:00
}
}
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters ( 'widget_title' , $title , $instance , $this -> id_base );
2009-04-27 11:28:57 +02:00
2014-05-15 18:33:15 +02:00
echo $args [ 'before_widget' ];
if ( $title ) {
echo $args [ 'before_title' ] . $title . $args [ 'after_title' ];
}
2010-12-02 22:28:17 +01:00
echo '<div class="tagcloud">' ;
2014-03-25 09:53:14 +01:00
/**
* Filter the taxonomy used in the Tag Cloud widget .
*
* @ since 2.8 . 0
* @ since 3.0 . 0 Added taxonomy drop - down .
*
* @ see wp_tag_cloud ()
*
* @ param array $current_taxonomy The taxonomy to use in the tag cloud . Default 'tags' .
*/
wp_tag_cloud ( apply_filters ( 'widget_tag_cloud_args' , array (
'taxonomy' => $current_taxonomy
) ) );
2009-05-05 09:14:51 +02:00
echo " </div> \n " ;
2014-05-15 18:33:15 +02:00
echo $args [ 'after_widget' ];
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2013-03-01 17:28:40 +01:00
$instance [ 'title' ] = strip_tags ( stripslashes ( $new_instance [ 'title' ]));
$instance [ 'taxonomy' ] = stripslashes ( $new_instance [ 'taxonomy' ]);
2009-04-27 11:28:57 +02:00
return $instance ;
2009-03-16 23:02:40 +01:00
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2010-02-21 03:47:58 +01:00
$current_taxonomy = $this -> _get_current_taxonomy ( $instance );
2009-03-16 23:02:40 +01:00
?>
2009-05-22 18:13:05 +02:00
< p >< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ) ?> </label>
2009-07-31 11:35:59 +02:00
< input type = " text " class = " widefat " id = " <?php echo $this->get_field_id ('title'); ?> " name = " <?php echo $this->get_field_name ('title'); ?> " value = " <?php if (isset ( $instance['title'] )) { echo esc_attr( $instance['title'] );} ?> " /></ p >
2010-02-21 03:47:58 +01:00
< p >< label for = " <?php echo $this->get_field_id ('taxonomy'); ?> " >< ? php _e ( 'Taxonomy:' ) ?> </label>
< select class = " widefat " id = " <?php echo $this->get_field_id ('taxonomy'); ?> " name = " <?php echo $this->get_field_name ('taxonomy'); ?> " >
2012-03-24 15:00:52 +01:00
< ? php foreach ( get_taxonomies () as $taxonomy ) :
2010-02-21 03:47:58 +01:00
$tax = get_taxonomy ( $taxonomy );
2010-05-14 02:34:04 +02:00
if ( ! $tax -> show_tagcloud || empty ( $tax -> labels -> name ) )
2010-02-21 03:47:58 +01:00
continue ;
?>
2010-05-14 02:34:04 +02:00
< option value = " <?php echo esc_attr( $taxonomy ) ?> " < ? php selected ( $taxonomy , $current_taxonomy ) ?> ><?php echo $tax->labels->name; ?></option>
2010-02-21 03:47:58 +01:00
< ? php endforeach ; ?>
</ select ></ p >< ? php
}
2014-05-19 19:30:17 +02:00
public function _get_current_taxonomy ( $instance ) {
2010-06-11 17:53:41 +02:00
if ( ! empty ( $instance [ 'taxonomy' ]) && taxonomy_exists ( $instance [ 'taxonomy' ]) )
2010-02-21 03:47:58 +01:00
return $instance [ 'taxonomy' ];
return 'post_tag' ;
2009-04-27 11:28:57 +02:00
}
2009-03-16 23:02:40 +01:00
}
2010-02-20 22:57:43 +01:00
/**
2010-02-24 20:25:13 +01:00
* Navigation Menu widget class
2010-02-20 22:57:43 +01:00
*
* @ since 3.0 . 0
*/
2010-02-24 20:25:13 +01:00
class WP_Nav_Menu_Widget extends WP_Widget {
2010-02-20 22:57:43 +01:00
2014-05-19 19:30:17 +02:00
public function __construct () {
2013-12-01 19:29:09 +01:00
$widget_ops = array ( 'description' => __ ( 'Add a custom menu to your sidebar.' ) );
2011-04-18 23:46:57 +02:00
parent :: __construct ( 'nav_menu' , __ ( 'Custom Menu' ), $widget_ops );
2010-02-20 22:57:43 +01:00
}
2010-03-17 17:27:25 +01:00
2014-05-19 19:30:17 +02:00
public function widget ( $args , $instance ) {
2010-02-24 22:33:27 +01:00
// Get menu
2011-09-15 11:41:17 +02:00
$nav_menu = ! empty ( $instance [ 'nav_menu' ] ) ? wp_get_nav_menu_object ( $instance [ 'nav_menu' ] ) : false ;
2010-03-17 17:27:25 +01:00
2010-02-28 21:00:49 +01:00
if ( ! $nav_menu )
2010-03-17 17:27:25 +01:00
return ;
2014-03-25 09:53:14 +01:00
/** This filter is documented in wp-includes/default-widgets.php */
2011-09-15 11:41:17 +02:00
$instance [ 'title' ] = apply_filters ( 'widget_title' , empty ( $instance [ 'title' ] ) ? '' : $instance [ 'title' ], $instance , $this -> id_base );
2010-06-24 17:07:11 +02:00
2010-02-28 21:00:49 +01:00
echo $args [ 'before_widget' ];
2010-03-17 17:27:25 +01:00
2010-05-14 20:52:59 +02:00
if ( ! empty ( $instance [ 'title' ]) )
2010-02-28 21:00:49 +01:00
echo $args [ 'before_title' ] . $instance [ 'title' ] . $args [ 'after_title' ];
2010-03-17 17:27:25 +01:00
2010-05-31 16:15:28 +02:00
wp_nav_menu ( array ( 'fallback_cb' => '' , 'menu' => $nav_menu ) );
2010-03-17 17:27:25 +01:00
2010-02-28 21:00:49 +01:00
echo $args [ 'after_widget' ];
2010-02-20 22:57:43 +01:00
}
2014-05-19 19:30:17 +02:00
public function update ( $new_instance , $old_instance ) {
2014-05-15 18:33:15 +02:00
$instance = array ();
if ( ! empty ( $new_instance [ 'title' ] ) ) {
$instance [ 'title' ] = strip_tags ( stripslashes ( $new_instance [ 'title' ]) );
}
if ( ! empty ( $new_instance [ 'nav_menu' ] ) ) {
$instance [ 'nav_menu' ] = ( int ) $new_instance [ 'nav_menu' ];
}
2010-02-28 21:00:49 +01:00
return $instance ;
2010-02-20 22:57:43 +01:00
}
2014-05-19 19:30:17 +02:00
public function form ( $instance ) {
2010-02-28 21:00:49 +01:00
$title = isset ( $instance [ 'title' ] ) ? $instance [ 'title' ] : '' ;
$nav_menu = isset ( $instance [ 'nav_menu' ] ) ? $instance [ 'nav_menu' ] : '' ;
2010-03-17 17:27:25 +01:00
2010-02-23 20:28:41 +01:00
// Get menus
2013-09-11 01:30:10 +02:00
$menus = wp_get_nav_menus ( array ( 'orderby' => 'name' ) );
2010-03-17 17:27:25 +01:00
2010-02-28 21:00:49 +01:00
// If no menus exists, direct the user to go and create some.
if ( ! $menus ) {
2010-03-15 23:46:30 +01:00
echo '<p>' . sprintf ( __ ( 'No menus have been created yet. <a href="%s">Create some</a>.' ), admin_url ( 'nav-menus.php' ) ) . '</p>' ;
2010-02-24 22:33:27 +01:00
return ;
}
?>
< p >
2010-02-28 21:00:49 +01:00
< label for = " <?php echo $this->get_field_id ('title'); ?> " >< ? php _e ( 'Title:' ) ?> </label>
< input type = " text " class = " widefat " id = " <?php echo $this->get_field_id ('title'); ?> " name = " <?php echo $this->get_field_name ('title'); ?> " value = " <?php echo $title ; ?> " />
2010-02-24 22:33:27 +01:00
</ p >
< p >
2010-02-28 21:00:49 +01:00
< label for = " <?php echo $this->get_field_id ('nav_menu'); ?> " >< ? php _e ( 'Select Menu:' ); ?> </label>
< select id = " <?php echo $this->get_field_id ('nav_menu'); ?> " name = " <?php echo $this->get_field_name ('nav_menu'); ?> " >
2014-04-25 02:35:25 +02:00
< option value = " 0 " >< ? php _e ( '— Select —' ) ?> </option>
2010-02-24 22:33:27 +01:00
< ? php
2010-02-28 21:00:49 +01:00
foreach ( $menus as $menu ) {
2012-09-16 18:51:12 +02:00
echo '<option value="' . $menu -> term_id . '"'
. selected ( $nav_menu , $menu -> term_id , false )
2014-04-24 22:45:31 +02:00
. '>' . esc_html ( $menu -> name ) . '</option>' ;
2010-02-28 21:00:49 +01:00
}
2010-02-24 22:33:27 +01:00
?>
2010-02-28 21:00:49 +01:00
</ select >
2010-02-24 22:33:27 +01:00
</ p >
< ? php
2010-02-20 22:57:43 +01:00
}
}
2009-03-16 23:02:40 +01:00
/**
* Register all of the default WordPress widgets on startup .
*
* Calls 'widgets_init' action after all of the WordPress widgets have been
* registered .
*
* @ since 2.2 . 0
*/
function wp_widgets_init () {
if ( ! is_blog_installed () )
return ;
2009-03-18 00:44:36 +01:00
register_widget ( 'WP_Widget_Pages' );
2009-03-16 23:02:40 +01:00
2009-03-18 00:44:36 +01:00
register_widget ( 'WP_Widget_Calendar' );
2009-03-16 23:02:40 +01:00
2009-03-18 00:44:36 +01:00
register_widget ( 'WP_Widget_Archives' );
2009-03-16 23:02:40 +01:00
2012-08-13 18:18:42 +02:00
if ( get_option ( 'link_manager_enabled' ) )
register_widget ( 'WP_Widget_Links' );
2009-03-16 23:02:40 +01:00
2009-03-18 00:44:36 +01:00
register_widget ( 'WP_Widget_Meta' );
2009-03-16 23:02:40 +01:00
2009-03-18 00:44:36 +01:00
register_widget ( 'WP_Widget_Search' );
2009-03-16 23:02:40 +01:00
2009-03-18 00:44:36 +01:00
register_widget ( 'WP_Widget_Text' );
2009-03-17 16:39:36 +01:00
2009-03-18 02:50:20 +01:00
register_widget ( 'WP_Widget_Categories' );
2009-04-25 14:43:51 +02:00
register_widget ( 'WP_Widget_Recent_Posts' );
2009-04-27 10:46:47 +02:00
2009-04-26 22:09:08 +02:00
register_widget ( 'WP_Widget_Recent_Comments' );
2009-03-16 23:02:40 +01:00
2009-04-27 10:46:47 +02:00
register_widget ( 'WP_Widget_RSS' );
2009-04-27 11:28:57 +02:00
register_widget ( 'WP_Widget_Tag_Cloud' );
2010-02-21 01:03:42 +01:00
2010-02-24 20:25:13 +01:00
register_widget ( 'WP_Nav_Menu_Widget' );
2010-02-21 01:03:42 +01:00
2014-03-25 09:53:14 +01:00
/**
* Fires after all default WordPress widgets have been registered .
*
* @ since 2.2 . 0
*/
do_action ( 'widgets_init' );
2009-03-16 23:02:40 +01:00
}
add_action ( 'init' , 'wp_widgets_init' , 1 );