Skip to content

Instantly share code, notes, and snippets.

@amrinz
Last active May 28, 2021 10:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amrinz/bfb0c4e47fbfa60c0ca4dfe1b5508228 to your computer and use it in GitHub Desktop.
Save amrinz/bfb0c4e47fbfa60c0ca4dfe1b5508228 to your computer and use it in GitHub Desktop.
Menambahkan Custom Class ke Widget
/*** Menambahkan Custom Class ke Widget ***/
function lmd_widget_form_extend( $instance, $widget ) {
$row = '';
if ( !isset($instance['classes']) )
$instance['classes'] = null;
$row .= "<p>Class:\t<input type='text' name='widget-{$widget->id_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat' value='{$instance['classes']}'/>\n";
$row .= "</p>\n";
echo $row;
return $instance;
}
add_filter('widget_form_callback', 'lmd_widget_form_extend', 10, 2);
function lmd_widget_update( $instance, $new_instance ) {
$instance['classes'] = $new_instance['classes'];
return $instance;
}
add_filter( 'widget_update_callback', 'lmd_widget_update', 10, 2 );
function lmd_dynamic_sidebar_params( $params ) {
global $wp_registered_widgets;
$widget_id = $params[0]['widget_id'];
$widget_obj = $wp_registered_widgets[$widget_id];
$widget_opt = get_option($widget_obj['callback'][0]->option_name);
$widget_num = $widget_obj['params'][0]['number'];
if ( isset($widget_opt[$widget_num]['classes']) && !empty($widget_opt[$widget_num]['classes']) )
$params[0]['before_widget'] = preg_replace( '/class="/', "class=\"{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1 );
return $params;
}
add_filter( 'dynamic_sidebar_params', 'lmd_dynamic_sidebar_params' );
@amrinz
Copy link
Author

amrinz commented May 28, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment