Você tem duas soluções possíveis.
1. O gancho de filtro widget_display_callback
Esse gancho de filtro permite que você direcione facilmente a instância do widget e substitua seus argumentos.
Uma abordagem possível seria: Dentro do retorno de chamada do filtro, modifique os argumentos para essa instância, exiba-os e, em seguida, retorne false
para evitar que sejam exibidos novamente do modo normal pelo WordPress. Veja este código em wp-includes / class-wp- widget.php .
2. Registre um novo widget que estenda o widget de pesquisa
Você pode estender o widget de pesquisa - definido em wp-includes / widgets / classe-wp-widget-search.php e sobrescreve o método widget()
para adicionar a classe que você quer, algo como isto (código deve ser adicionado em algum lugar visto por WordPress, como um plugin personalizado ou no seu tema functions.php
file) :
/**
* Custom widget search
*
* Extends the default search widget and adds a class to classes in 'before_title'
*
* @author Nabil Kadimi
* @link http://wordpress.stackexchange.com/a/258292/17187
*/
class WP_Widget_Search_Custom extends WP_Widget_Search {
public function __construct() {
$widget_ops = array(
'classname' => 'widget_search widget_search_custom',
'description' => __( 'A Custom search form for your site.' ),
'customize_selective_refresh' => true,
);
WP_Widget::__construct( 'search_custom', _x( 'Custom Search', 'Custom Search widget' ), $widget_ops );
}
public function widget( $args, $instance ) {
$custom_class = 'wpse-258279';
$args['before_widget'] = str_replace('class="', "class=\"$custom_class", $args['before_widget']);
/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
echo $args['before_widget'];
if ( $title ) {
echo $args['before_title'] . $title . $args['after_title'];
}
// Use current theme search form if it exists
get_search_form();
echo $args['after_widget'];
}
}
/**
* Register the custom search widget
*/
add_action( 'widgets_init', function() {
register_widget( 'WP_Widget_Search_Custom' );
} );