WordPress.org

Make WordPress Core

Ticket #10976: 10976.widget-content.diff

File 10976.widget-content.diff, 11.2 KB (added by lancewillett, 5 years ago)

Patch to add before_content and after_content to default widgets

  • wp-includes/default-widgets.php

     
    3535                        echo $before_widget; 
    3636                        if ( $title) 
    3737                                echo $before_title . $title . $after_title; 
     38                        echo $before_content; 
    3839                ?> 
    3940                <ul> 
    4041                        <?php echo $out; ?> 
    4142                </ul> 
    4243                <?php 
     44                        echo $after_content; 
    4345                        echo $after_widget; 
    4446                } 
    4547        } 
     
    104106                $show_images = isset($instance['images']) ? $instance['images'] : true; 
    105107                $category = isset($instance['category']) ? $instance['category'] : false; 
    106108 
     109                $link_args = array( 
     110                        'title_before' => $before_title, 
     111                        'title_after' => $after_title . $before_content, 
     112                        'category_before' => $before_widget, 
     113                        'category_after' => $after_widget, 
     114                        'show_images' => $show_images, 
     115                        'show_description' => $show_description, 
     116                        'show_name' => $show_name, 
     117                        'show_rating' => $show_rating, 
     118                        'category' => $category, 
     119                        'class' => 'linkcat widget' 
     120                ); 
     121 
    107122                if ( is_admin() && !$category ) { 
    108123                        // Display All Links widget as such in the widgets screen 
    109124                        echo $before_widget . $before_title. __('All Links') . $after_title . $after_widget; 
     
    111126                } 
    112127 
    113128                $before_widget = preg_replace('/id="[^"]*"/','id="%id"', $before_widget); 
    114                 wp_list_bookmarks(apply_filters('widget_links_args', array( 
    115                         'title_before' => $before_title, 'title_after' => $after_title, 
    116                         'category_before' => $before_widget, 'category_after' => $after_widget, 
    117                         'show_images' => $show_images, 'show_description' => $show_description, 
    118                         'show_name' => $show_name, 'show_rating' => $show_rating, 
    119                         'category' => $category, 'class' => 'linkcat widget' 
    120                 ))); 
     129 
     130                echo $before_widget; 
     131 
     132                wp_list_bookmarks( apply_filters( 'widget_links_args', $link_args ) ); 
     133 
     134                echo $after_content; 
     135 
     136                echo $after_widget; 
    121137        } 
    122138 
    123139        function update( $new_instance, $old_instance ) { 
    124140                $new_instance = (array) $new_instance; 
    125                 $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0); 
     141                $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0 ); 
    126142                foreach ( $instance as $field => $val ) { 
    127143                        if ( isset($new_instance[$field]) ) 
    128144                                $instance[$field] = 1; 
     
    184200                if ( $title ) 
    185201                        echo $before_title . $title . $after_title; 
    186202 
    187                 // Use current theme search form if it exists 
    188                 get_search_form(); 
     203                echo $before_content; 
     204                get_search_form(); // Use current theme search form if it exists 
     205                echo $after_content; 
    189206 
    190207                echo $after_widget; 
    191208        } 
     
    229246                if ( $title ) 
    230247                        echo $before_title . $title . $after_title; 
    231248 
     249                echo $before_content; 
    232250                if ( $d ) { 
    233251?> 
    234252                <select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> <option value=""><?php echo esc_attr(__('Select Month')); ?></option> <?php wp_get_archives(apply_filters('widget_archives_dropdown_args', array('type' => 'monthly', 'format' => 'option', 'show_post_count' => $c))); ?> </select> 
     
    240258                </ul> 
    241259<?php 
    242260                } 
     261                echo $after_content; 
    243262 
    244263                echo $after_widget; 
    245264        } 
     
    291310                echo $before_widget; 
    292311                if ( $title ) 
    293312                        echo $before_title . $title . $after_title; 
     313                         
     314                        echo $before_content; 
    294315?> 
    295316                        <ul> 
    296317                        <?php wp_register(); ?> 
     
    301322                        <?php wp_meta(); ?> 
    302323                        </ul> 
    303324<?php 
     325                echo $after_content; 
     326 
    304327                echo $after_widget; 
    305328        } 
    306329 
     
    335358        function widget( $args, $instance ) { 
    336359                extract($args); 
    337360                $title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base); 
     361 
    338362                echo $before_widget; 
     363 
    339364                if ( $title ) 
    340365                        echo $before_title . $title . $after_title; 
    341                 echo '<div id="calendar_wrap">'; 
     366 
     367                if ( '' != $before_content ) 
     368                        echo $before_content; 
     369                else 
     370                        echo '<div id="calendar_wrap">'; 
     371 
    342372                get_calendar(); 
    343                 echo '</div>'; 
     373 
     374                if ( '' != $after_content ) 
     375                        echo $after_content; 
     376                else 
     377                        echo '</div>'; 
     378 
    344379                echo $after_widget; 
    345380        } 
    346381 
     
    378413                extract($args); 
    379414                $title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); 
    380415                $text = apply_filters( 'widget_text', $instance['text'], $instance ); 
     416 
    381417                echo $before_widget; 
    382                 if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?> 
    383                         <div class="textwidget"><?php echo $instance['filter'] ? wpautop($text) : $text; ?></div> 
    384                 <?php 
     418 
     419                if ( !empty( $title ) ) 
     420                        echo $before_title . $title . $after_title; 
     421 
     422                if ( '' != $before_content ) 
     423                        echo $before_content; 
     424                else 
     425                        echo '<div class="textwidget">'; 
     426 
     427                echo $instance['filter'] ? wpautop( $text ) : $text; 
     428 
     429                if ( '' != $after_content ) 
     430                        echo $after_content; 
     431                else 
     432                        echo '</div>'; 
     433 
    385434                echo $after_widget; 
    386435        } 
    387436 
     
    432481                $d = $instance['dropdown'] ? '1' : '0'; 
    433482 
    434483                echo $before_widget; 
     484 
    435485                if ( $title ) 
    436486                        echo $before_title . $title . $after_title; 
    437487 
    438                 $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h); 
     488                echo $before_content; 
    439489 
     490                $cat_args = array( 'orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h ); 
     491 
    440492                if ( $d ) { 
    441493                        $cat_args['show_option_none'] = __('Select Category'); 
    442494                        wp_dropdown_categories(apply_filters('widget_categories_dropdown_args', $cat_args)); 
     
    460512                <ul> 
    461513<?php 
    462514                $cat_args['title_li'] = ''; 
    463                 wp_list_categories(apply_filters('widget_categories_args', $cat_args)); 
     515                wp_list_categories( apply_filters( 'widget_categories_args', $cat_args ) ); 
    464516?> 
    465517                </ul> 
    466518<?php 
    467519                } 
    468520 
     521                echo $after_content; 
     522 
    469523                echo $after_widget; 
    470524        } 
    471525 
     
    547601?> 
    548602                <?php echo $before_widget; ?> 
    549603                <?php if ( $title ) echo $before_title . $title . $after_title; ?> 
     604                <?php echo $before_content; ?> 
    550605                <ul> 
    551606                <?php  while ($r->have_posts()) : $r->the_post(); ?> 
    552                 <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li> 
     607                        <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li> 
    553608                <?php endwhile; ?> 
    554609                </ul> 
     610                <?php echo $after_content; ?> 
    555611                <?php echo $after_widget; ?> 
    556612<?php 
    557613                // Reset the global $the_post as this query will have stomped on it 
     
    649705                if ( $title ) 
    650706                        $output .= $before_title . $title . $after_title; 
    651707 
     708                $output .= $before_content; 
    652709                $output .= '<ul id="recentcomments">'; 
    653710                if ( $comments ) { 
    654711                        foreach ( (array) $comments as $comment) { 
     
    656713                        } 
    657714                } 
    658715                $output .= '</ul>'; 
     716                $output .= $after_content; 
    659717                $output .= $after_widget; 
    660718 
    661719                echo $output; 
     
    742800                echo $before_widget; 
    743801                if ( $title ) 
    744802                        echo $before_title . $title . $after_title; 
     803                echo $before_content; 
    745804                wp_widget_rss_output( $rss, $instance ); 
     805                echo $after_content; 
    746806                echo $after_widget; 
    747807 
    748808                if ( ! is_wp_error($rss) ) 
     
    10091069                $title = apply_filters('widget_title', $title, $instance, $this->id_base); 
    10101070 
    10111071                echo $before_widget; 
     1072 
    10121073                if ( $title ) 
    10131074                        echo $before_title . $title . $after_title; 
    1014                 echo '<div>'; 
     1075 
     1076                if ( '' != $before_content ) 
     1077                        echo $before_content; 
     1078                else 
     1079                        echo '<div>'; 
     1080 
    10151081                wp_tag_cloud( apply_filters('widget_tag_cloud_args', array('taxonomy' => $current_taxonomy) ) ); 
    1016                 echo "</div>\n"; 
     1082 
     1083                if ( '' != $after_content ) 
     1084                        echo $after_content; 
     1085                else 
     1086                        echo "</div>\n"; 
     1087 
    10171088                echo $after_widget; 
    10181089        } 
    10191090 
     
    10531124 * 
    10541125 * @since 3.0.0 
    10551126 */ 
    1056  class WP_Nav_Menu_Widget extends WP_Widget { 
     1127class WP_Nav_Menu_Widget extends WP_Widget { 
    10571128 
    10581129        function WP_Nav_Menu_Widget() { 
    10591130                $widget_ops = array( 'description' => __('Use this widget to add one of your custom menus as a widget.') ); 
     
    10741145                if ( !empty($instance['title']) ) 
    10751146                        echo $args['before_title'] . $instance['title'] . $args['after_title']; 
    10761147 
     1148                echo $args['before_content']; 
     1149 
    10771150                wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) ); 
    10781151 
     1152                echo $args['after_content']; 
     1153 
    10791154                echo $args['after_widget']; 
    10801155        } 
    10811156 
  • wp-includes/widgets.php

     
    3838         * 
    3939         * Subclasses should over-ride this function to generate their widget code. 
    4040         * 
    41          * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget. 
     41         * @param array $args Display arguments including before_title, after_title, before_widget, after_widget, before_content, and after_content. 
    4242         * @param array $instance The settings for the particular instance of the widget 
    4343         */ 
    4444        function widget($args, $instance) { 
     
    528528 *     displayed. 
    529529 * before_title - The content that will be prepended to the title when displayed. 
    530530 * after_title - the content that will be appended to the title when displayed. 
     531 * before_content - The content that will be prepended to the widget content when displayed. 
     532 * after_content - the content that will be appended to the widget content when displayed. 
    531533 * 
    532534 * <em>Content</em> is assumed to be HTML and should be formatted as such, but 
    533535 * doesn't have to be. 
     
    551553                'after_widget' => "</li>\n", 
    552554                'before_title' => '<h2 class="widgettitle">', 
    553555                'after_title' => "</h2>\n", 
     556                'before_content' => '', 
     557                'after_content' => '', 
    554558        ); 
    555559 
    556560        $sidebar = wp_parse_args( $args, $defaults ); 
     
    11951199        if ( !is_a($widget_obj, 'WP_Widget') ) 
    11961200                return; 
    11971201 
    1198         $before_widget = sprintf('<div class="widget %s">', $widget_obj->widget_options['classname']); 
    1199         $default_args = array('before_widget' => $before_widget, 'after_widget' => "</div>", 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>'); 
     1202        $before_widget = sprintf( '<div class="widget %s">', $widget_obj->widget_options['classname'] ); 
     1203        $default_args = array( 
     1204                'before_widget' => $before_widget, 
     1205                'after_widget' => "</div>", 
     1206                'before_title' => '<h2 class="widgettitle">', 
     1207                'after_title' => '</h2>', 
     1208                'before_content' => '', 
     1209                'after_content' => '' 
     1210        ); 
    12001211 
    12011212        $args = wp_parse_args($args, $default_args); 
    12021213        $instance = wp_parse_args($instance); 
  • wp-content/themes/twentyten/functions.php

     
    358358                'after_widget' => '</li>', 
    359359                'before_title' => '<h3 class="widget-title">', 
    360360                'after_title' => '</h3>', 
     361                'before_content' => '<div class="textwidget lance debug" style="border: 1px solid red;">', 
     362                'after_content' => '</div>', 
    361363        ) ); 
    362364 
    363365        // Area 2, located below the Primary Widget Area in the sidebar. Empty by default. 
     
    480482                the_title_attribute( 'echo=0' ) 
    481483        ); 
    482484} 
    483 endif; 
     485endif; 
     486 No newline at end of file 
  • wp-admin/widgets.php

     
    5555        'after_widget' => '', 
    5656        'before_title' => '', 
    5757        'after_title' => '', 
     58        'before_content' => '', 
     59        'after_content' => '', 
    5860)); 
    5961 
    6062// These are the widgets grouped by sidebar