1

First of I am pretty new to this so sorry if this has been asked before but I could not find the right answer for me.

I have this dropdown on my websiteenter image description here

from compare-tech(.)fr

I am trying to remove "Toutes les catégories" and make "Acheter" the default value. I have tried adding a function to wordpress but it did not work, I tried : (again I am new to this)

function wp_dropdown_categories( $args = '' ) { $defaults = array( 'selected' => 2, ); 

Here are some more informations about the html code :

enter image description here

Thanks very much to anyone you would be able to help me !

2 Answers 2

0

To set the default value for the category dropdown, you need to pass it as a parameter for the function. Like so,

$dropdown_args = array(
  'selected' => 2,
);
wp_dropdown_categories( $dropdown_args );
2
  • Thank you for your help. I am using Elementor and I do not know where to put this code. Is there a version I can put in function file ? I tried this function wp_dropdown_categories( $args = '' ) { $defaults = array( 'selected' => 2, ); }
    – Antoine
    Commented Jan 18, 2020 at 23:19
  • @Antoine. Ah, in that case you need to either refer ro the Elementor documentation or request support from the plugin author as third party plugins, such as Elementor, are considered off-topic here on WPSE. Unfortunately I can't help more as I'm not familiar with Elementor inner workings. Commented Jan 19, 2020 at 13:48
0

@Antti Koskinen Sorry I missexplained, this is not coming from Elementor, it is just that I do not know where to put the code :)

I have modified the file class-wp-widget-search.php but it did not have any effect. I just added this to the file :

'selected' => 2,

Here is complete file code :

/**
 * Sets up a new Search widget instance.
 *
 * @since 2.8.0
 */
public function __construct() {
    $widget_ops = array(
        'classname'                   => 'widget_search',
        'description'                 => __( 'A search form for your site.' ),
        'customize_selective_refresh' => true,
        'selected' => 2,
    );
    parent::__construct( 'search', _x( 'Search', 'Search widget' ), $widget_ops );
}

/**
 * Outputs the content for the current Search widget instance.
 *
 * @since 2.8.0
 *
 * @param array $args     Display arguments including 'before_title', 'after_title',
 *                        'before_widget', and 'after_widget'.
 * @param array $instance Settings for the current Search widget instance.
 */
public function widget( $args, $instance ) {
    $title = ! empty( $instance['title'] ) ? $instance['title'] : '';

    /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
    $title = apply_filters( 'widget_title', $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'];
}
/**
 * Outputs the settings form for the Search widget.
 *
 * @since 2.8.0
 *
 * @param array $instance Current settings.
 */
public function form( $instance ) {
    $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
    $title    = $instance['title'];
    ?>
    <p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /></label></p>
    <?php
}

/**
 * Handles updating settings for the current Search widget instance.
 *
 * @since 2.8.0
 *
 * @param array $new_instance New settings for this instance as input by the user via
 *                            WP_Widget::form().
 * @param array $old_instance Old settings for this instance.
 * @return array Updated settings.
 */
public function update( $new_instance, $old_instance ) {
    $instance          = $old_instance;
    $new_instance      = wp_parse_args( (array) $new_instance, array( 'title' => '' ) );
    $instance['title'] = sanitize_text_field( $new_instance['title'] );
    return $instance;
}

Thank you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.