Widgets: Pass $instance to widget argument filters:

* `widget_archives_dropdown_args`
* `widget_archives_args`
* `widget_categories_dropdown_args`
* `widget_categories_args`
* `widget_meta_poweredby`
* `widget_pages_args`
* `widget_comments_args`
* `widget_posts_args`
* `widget_tag_cloud_args`

See [33971] for `widget_links_args` and [34662] for `widget_nav_menu_args`.

Props Takahashi_Fumiki.
Fixes #38017.
Built from https://develop.svn.wordpress.org/trunk@41685


git-svn-id: http://core.svn.wordpress.org/trunk@41519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2017-10-02 22:02:47 +00:00
parent a42b9cebde
commit 253541556e
9 changed files with 35 additions and 17 deletions

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.9-alpha-41684'; $wp_version = '4.9-alpha-41685';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.

View File

@ -61,16 +61,18 @@ class WP_Widget_Archives extends WP_Widget {
* Filters the arguments for the Archives widget drop-down. * Filters the arguments for the Archives widget drop-down.
* *
* @since 2.8.0 * @since 2.8.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see wp_get_archives() * @see wp_get_archives()
* *
* @param array $args An array of Archives widget drop-down arguments. * @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( $dropdown_args = apply_filters( 'widget_archives_dropdown_args', array(
'type' => 'monthly', 'type' => 'monthly',
'format' => 'option', 'format' => 'option',
'show_post_count' => $c 'show_post_count' => $c
) ); ), $instance );
switch ( $dropdown_args['type'] ) { switch ( $dropdown_args['type'] ) {
case 'yearly': case 'yearly':
@ -102,15 +104,17 @@ class WP_Widget_Archives extends WP_Widget {
* Filters the arguments for the Archives widget. * Filters the arguments for the Archives widget.
* *
* @since 2.8.0 * @since 2.8.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see wp_get_archives() * @see wp_get_archives()
* *
* @param array $args An array of Archives option arguments. * @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( wp_get_archives( apply_filters( 'widget_archives_args', array(
'type' => 'monthly', 'type' => 'monthly',
'show_post_count' => $c 'show_post_count' => $c
) ) ); ), $instance ) );
?> ?>
</ul> </ul>
<?php <?php

View File

@ -76,12 +76,14 @@ class WP_Widget_Categories extends WP_Widget {
* Filters the arguments for the Categories widget drop-down. * Filters the arguments for the Categories widget drop-down.
* *
* @since 2.8.0 * @since 2.8.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see wp_dropdown_categories() * @see wp_dropdown_categories()
* *
* @param array $cat_args An array of Categories widget drop-down arguments. * @param array $cat_args An array of Categories widget drop-down arguments.
* @param array $instance Array of settings for the current widget.
*/ */
wp_dropdown_categories( apply_filters( 'widget_categories_dropdown_args', $cat_args ) ); wp_dropdown_categories( apply_filters( 'widget_categories_dropdown_args', $cat_args, $instance ) );
echo '</form>'; echo '</form>';
?> ?>
@ -111,10 +113,12 @@ class WP_Widget_Categories extends WP_Widget {
* Filters the arguments for the Categories widget. * Filters the arguments for the Categories widget.
* *
* @since 2.8.0 * @since 2.8.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @param array $cat_args An array of Categories widget options. * @param array $cat_args An array of Categories widget options.
* @param array $instance Array of settings for the current widget.
*/ */
wp_list_categories( apply_filters( 'widget_categories_args', $cat_args ) ); wp_list_categories( apply_filters( 'widget_categories_args', $cat_args, $instance ) );
?> ?>
</ul> </ul>
<?php <?php

View File

@ -70,7 +70,7 @@ class WP_Widget_Links extends WP_Widget {
* Filters the arguments for the Links widget. * Filters the arguments for the Links widget.
* *
* @since 2.6.0 * @since 2.6.0
* @since 4.4.0 The `$instance` parameter was added. * @since 4.4.0 Added the `$instance` parameter.
* *
* @see wp_list_bookmarks() * @see wp_list_bookmarks()
* *

View File

@ -60,14 +60,16 @@ class WP_Widget_Meta extends WP_Widget {
* Filters the "Powered by WordPress" text in the Meta widget. * Filters the "Powered by WordPress" text in the Meta widget.
* *
* @since 3.6.0 * @since 3.6.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @param string $title_text Default title text for the WordPress.org link. * @param string $title_text Default title text for the WordPress.org link.
* @param array $instance Array of settings for the current widget.
*/ */
echo apply_filters( 'widget_meta_poweredby', sprintf( '<li><a href="%s" title="%s">%s</a></li>', echo apply_filters( 'widget_meta_poweredby', sprintf( '<li><a href="%s" title="%s">%s</a></li>',
esc_url( __( 'https://wordpress.org/' ) ), esc_url( __( 'https://wordpress.org/' ) ),
esc_attr__( 'Powered by WordPress, state-of-the-art semantic personal publishing platform.' ), esc_attr__( 'Powered by WordPress, state-of-the-art semantic personal publishing platform.' ),
_x( 'WordPress.org', 'meta widget link text' ) _x( 'WordPress.org', 'meta widget link text' )
) ); ), $instance );
wp_meta(); wp_meta();
?> ?>

View File

@ -47,7 +47,7 @@ class WP_Widget_Pages extends WP_Widget {
* @since 2.6.0 * @since 2.6.0
* *
* @param string $title The widget title. Default 'Pages'. * @param string $title The widget title. Default 'Pages'.
* @param array $instance An array of the widget's settings. * @param array $instance Array of settings for the current widget.
* @param mixed $id_base The widget ID. * @param mixed $id_base The widget ID.
*/ */
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Pages' ) : $instance['title'], $instance, $this->id_base ); $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Pages' ) : $instance['title'], $instance, $this->id_base );
@ -62,17 +62,19 @@ class WP_Widget_Pages extends WP_Widget {
* Filters the arguments for the Pages widget. * Filters the arguments for the Pages widget.
* *
* @since 2.8.0 * @since 2.8.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see wp_list_pages() * @see wp_list_pages()
* *
* @param array $args An array of arguments to retrieve the pages list. * @param array $args An array of arguments to retrieve the pages list.
* @param array $instance Array of settings for the current widget.
*/ */
$out = wp_list_pages( apply_filters( 'widget_pages_args', array( $out = wp_list_pages( apply_filters( 'widget_pages_args', array(
'title_li' => '', 'title_li' => '',
'echo' => 0, 'echo' => 0,
'sort_column' => $sortby, 'sort_column' => $sortby,
'exclude' => $exclude 'exclude' => $exclude
) ) ); ), $instance ) );
if ( ! empty( $out ) ) { if ( ! empty( $out ) ) {
echo $args['before_widget']; echo $args['before_widget'];

View File

@ -85,16 +85,18 @@ class WP_Widget_Recent_Comments extends WP_Widget {
* Filters the arguments for the Recent Comments widget. * Filters the arguments for the Recent Comments widget.
* *
* @since 3.4.0 * @since 3.4.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see WP_Comment_Query::query() for information on accepted arguments. * @see WP_Comment_Query::query() for information on accepted arguments.
* *
* @param array $comment_args An array of arguments used to retrieve the recent comments. * @param array $comment_args An array of arguments used to retrieve the recent comments.
* @param array $instance Array of settings for the current widget.
*/ */
$comments = get_comments( apply_filters( 'widget_comments_args', array( $comments = get_comments( apply_filters( 'widget_comments_args', array(
'number' => $number, 'number' => $number,
'status' => 'approve', 'status' => 'approve',
'post_status' => 'publish' 'post_status' => 'publish'
) ) ); ), $instance ) );
$output .= $args['before_widget']; $output .= $args['before_widget'];
if ( $title ) { if ( $title ) {

View File

@ -59,17 +59,19 @@ class WP_Widget_Recent_Posts extends WP_Widget {
* Filters the arguments for the Recent Posts widget. * Filters the arguments for the Recent Posts widget.
* *
* @since 3.4.0 * @since 3.4.0
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see WP_Query::get_posts() * @see WP_Query::get_posts()
* *
* @param array $args An array of arguments used to retrieve the recent posts. * @param array $args An array of arguments used to retrieve the recent posts.
* @param array $instance Array of settings for the current widget.
*/ */
$r = new WP_Query( apply_filters( 'widget_posts_args', array( $r = new WP_Query( apply_filters( 'widget_posts_args', array(
'posts_per_page' => $number, 'posts_per_page' => $number,
'no_found_rows' => true, 'no_found_rows' => true,
'post_status' => 'publish', 'post_status' => 'publish',
'ignore_sticky_posts' => true 'ignore_sticky_posts' => true
) ) ); ), $instance ) );
if ($r->have_posts()) : if ($r->have_posts()) :
?> ?>

View File

@ -58,16 +58,18 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
* *
* @since 2.8.0 * @since 2.8.0
* @since 3.0.0 Added taxonomy drop-down. * @since 3.0.0 Added taxonomy drop-down.
* @since 4.9.0 Added the `$instance` parameter.
* *
* @see wp_tag_cloud() * @see wp_tag_cloud()
* *
* @param array $args Args used for the tag cloud widget. * @param array $args Args used for the tag cloud widget.
* @param array $instance Array of settings for the current widget.
*/ */
$tag_cloud = wp_tag_cloud( apply_filters( 'widget_tag_cloud_args', array( $tag_cloud = wp_tag_cloud( apply_filters( 'widget_tag_cloud_args', array(
'taxonomy' => $current_taxonomy, 'taxonomy' => $current_taxonomy,
'echo' => false, 'echo' => false,
'show_count' => $show_count, 'show_count' => $show_count,
) ) ); ), $instance ) );
if ( empty( $tag_cloud ) ) { if ( empty( $tag_cloud ) ) {
return; return;