--- a/wp/wp-includes/widgets/class-wp-widget-archives.php Mon Oct 14 18:06:33 2019 +0200
+++ b/wp/wp-includes/widgets/class-wp-widget-archives.php Mon Oct 14 18:28:13 2019 +0200
@@ -23,11 +23,11 @@
*/
public function __construct() {
$widget_ops = array(
- 'classname' => 'widget_archive',
- 'description' => __( 'A monthly archive of your site’s Posts.' ),
+ 'classname' => 'widget_archive',
+ 'description' => __( 'A monthly archive of your site’s Posts.' ),
'customize_selective_refresh' => true,
);
- parent::__construct('archives', __('Archives'), $widget_ops);
+ parent::__construct( 'archives', __( 'Archives' ), $widget_ops );
}
/**
@@ -58,7 +58,7 @@
$dropdown_id = "{$this->id_base}-dropdown-{$this->number}";
?>
<label class="screen-reader-text" for="<?php echo esc_attr( $dropdown_id ); ?>"><?php echo $title; ?></label>
- <select id="<?php echo esc_attr( $dropdown_id ); ?>" name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
+ <select id="<?php echo esc_attr( $dropdown_id ); ?>" name="archive-dropdown">
<?php
/**
* Filters the arguments for the Archives widget drop-down.
@@ -71,11 +71,15 @@
* @param array $args An array of Archives widget drop-down arguments.
* @param array $instance Settings for the current Archives widget instance.
*/
- $dropdown_args = apply_filters( 'widget_archives_dropdown_args', array(
- 'type' => 'monthly',
- 'format' => 'option',
- 'show_post_count' => $c
- ), $instance );
+ $dropdown_args = apply_filters(
+ 'widget_archives_dropdown_args',
+ array(
+ 'type' => 'monthly',
+ 'format' => 'option',
+ 'show_post_count' => $c,
+ ),
+ $instance
+ );
switch ( $dropdown_args['type'] ) {
case 'yearly':
@@ -100,27 +104,48 @@
<?php wp_get_archives( $dropdown_args ); ?>
</select>
+
+<script type='text/javascript'>
+/* <![CDATA[ */
+(function() {
+ var dropdown = document.getElementById( "<?php echo esc_js( $dropdown_id ); ?>" );
+ function onSelectChange() {
+ if ( dropdown.options[ dropdown.selectedIndex ].value !== '' ) {
+ document.location.href = this.options[ this.selectedIndex ].value;
+ }
+ }
+ dropdown.onchange = onSelectChange;
+})();
+/* ]]> */
+</script>
+
<?php } else { ?>
<ul>
- <?php
- /**
- * Filters the arguments for the Archives widget.
- *
- * @since 2.8.0
- * @since 4.9.0 Added the `$instance` parameter.
- *
- * @see wp_get_archives()
- *
- * @param array $args An array of Archives option arguments.
- * @param array $instance Array of settings for the current widget.
- */
- wp_get_archives( apply_filters( 'widget_archives_args', array(
- 'type' => 'monthly',
- 'show_post_count' => $c
- ), $instance ) );
- ?>
+ <?php
+ /**
+ * Filters the arguments for the Archives widget.
+ *
+ * @since 2.8.0
+ * @since 4.9.0 Added the `$instance` parameter.
+ *
+ * @see wp_get_archives()
+ *
+ * @param array $args An array of Archives option arguments.
+ * @param array $instance Array of settings for the current widget.
+ */
+ wp_get_archives(
+ apply_filters(
+ 'widget_archives_args',
+ array(
+ 'type' => 'monthly',
+ 'show_post_count' => $c,
+ ),
+ $instance
+ )
+ );
+ ?>
</ul>
- <?php
+ <?php
}
echo $args['after_widget'];
@@ -137,10 +162,17 @@
* @return array Updated settings to save.
*/
public function update( $new_instance, $old_instance ) {
- $instance = $old_instance;
- $new_instance = wp_parse_args( (array) $new_instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
- $instance['title'] = sanitize_text_field( $new_instance['title'] );
- $instance['count'] = $new_instance['count'] ? 1 : 0;
+ $instance = $old_instance;
+ $new_instance = wp_parse_args(
+ (array) $new_instance,
+ array(
+ 'title' => '',
+ 'count' => 0,
+ 'dropdown' => '',
+ )
+ );
+ $instance['title'] = sanitize_text_field( $new_instance['title'] );
+ $instance['count'] = $new_instance['count'] ? 1 : 0;
$instance['dropdown'] = $new_instance['dropdown'] ? 1 : 0;
return $instance;
@@ -154,14 +186,20 @@
* @param array $instance Current settings.
*/
public function form( $instance ) {
- $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
- $title = sanitize_text_field( $instance['title'] );
+ $instance = wp_parse_args(
+ (array) $instance,
+ array(
+ 'title' => '',
+ 'count' => 0,
+ 'dropdown' => '',
+ )
+ );
?>
- <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>
+ <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( $instance['title'] ); ?>" /></p>
<p>
- <input class="checkbox" type="checkbox"<?php checked( $instance['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>
+ <input class="checkbox" type="checkbox"<?php checked( $instance['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/>
- <input class="checkbox" type="checkbox"<?php checked( $instance['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>
+ <input class="checkbox" type="checkbox"<?php checked( $instance['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>
</p>
<?php
}