Guest User

Untitled

a guest
May 22nd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. if( ! function_exists( 'lastimosa_widget_form_extend' ) ) :
  2. /**
  3. * Add class field to WP Widget and placed last on the bottom
  4. */
  5. function lastimosa_widget_form_extend( $widget, $return, $instance ) {
  6. if ( !isset($instance['classes']) )
  7. $instance['classes'] = null;
  8. $row = "<p><label for='widget-{$widget->id_base}-{$widget->number}-classes'>Class:</label>\n";
  9. $row .= "<input type='text' name='widget-{$widget->id_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat' value='{$instance['classes']}'/></p>";
  10. echo $row;
  11. return $return;
  12. }
  13. add_action('in_widget_form', 'lastimosa_widget_form_extend', 10, 3);
  14.  
  15. function lastimosa_widget_update( $instance, $new_instance ) {
  16. $instance['classes'] = $new_instance['classes'];
  17. return $instance;
  18. }
  19. add_filter( 'widget_update_callback', 'lastimosa_widget_update', 10, 2 );
  20.  
  21. function lastimosa_dynamic_sidebar_params( $params ) {
  22. global $wp_registered_widgets;
  23. $widget_id = $params[0]['widget_id'];
  24. $widget_obj = $wp_registered_widgets[$widget_id];
  25. $widget_opt = get_option($widget_obj['callback'][0]->option_name);
  26. $widget_num = $widget_obj['params'][0]['number'];
  27.  
  28. if ( isset($widget_opt[$widget_num]['classes']) && !empty($widget_opt[$widget_num]['classes']) )
  29. $params[0]['before_widget'] = preg_replace( '/class="/', "class=\"{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1 );
  30. return $params;
  31. }
  32. add_filter( 'dynamic_sidebar_params', 'lastimosa_dynamic_sidebar_params' );
  33. endif;
Add Comment
Please, Sign In to add comment