En un tema de WordPress (usando get_search_form()), ¿cómo puedo agregar texto de marcador de posición al cuadro de búsqueda?

3 minutos de lectura

Estoy tratando de crear un tema y estoy mostrando un cuadro de búsqueda en el encabezado usando:

<?php get_search_form(); ?>

¿Hay alguna manera de que pueda mostrar el texto del marcador de posición en ese cuadro?

Terminé descifrando que si no tengo un archivo llamado “searchform.php” en mi carpeta de temas, WordPress muestra el formulario predeterminado que no incluye ningún texto de marcador de posición:

<form role="search" method="get" id="searchform" action="<?php echo home_url( "https://stackoverflow.com/" ); ?>">
    <div><label class="screen-reader-text" for="s">Search for:</label>
        <input type="text" value="" name="s" id="s" />
        <input type="submit" id="searchsubmit" value="Search" />
    </div>
</form>

Creé un nuevo archivo llamado “searchform.php” en mi carpeta de temas y modifiqué el formulario predeterminado para incluir el texto del marcador de posición:

<form role="search" method="get" id="searchform" action="<?php echo home_url( "https://stackoverflow.com/" ); ?>">
    <div>
        <input type="text" value="" name="s" id="s" placeholder="Search gear, clothing, & more.." />
        <input type="submit" id="searchsubmit" value="Search" />
    </div>
</form>

  • Gracias por compartir su solución.

    – Alexandre Bourlier

    23 mayo 2014 a las 19:25

haga searchform.php en la carpeta del tema y coloque ese código en él

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
<div>
<input class="text" type="text" value=" " name="s" id="s" />
<input type="submit" class="submit button" name="submit" value="<?php _e('Search');?>" />
</div>
</form>

¡Cambia lo que quieras! como clase, marcador de posición, envíe un mensaje de texto con cualquier cosa que desee pero no cambie como el nombre, la identificación y el atributo de formulario

Gracias

  • ¡Agradable! No sabía de esta manera. ¡Gracias, @Vishal!

    –Rafael Cavalcante

    26 de enero de 2017 a las 18:23

avatar de usuario
tobías

El códice WP tiene un ejemplo con un marcador de posición:

Si su tema es compatible con HTML5, lo que sucede si usa
add_theme_support('html5', array('search-form')), generará el siguiente formulario HTML. Este es el caso desde WordPress 3.6.

<form role="search" method="get" class="search-form" action="<?php echo home_url( "https://stackoverflow.com/" ); ?>">
    <label>
        <span class="screen-reader-text">Search for:</span>
        <input type="search" class="search-field" placeholder="Search …" value="" name="s" title="Search for:" />
    </label>
    <input type="submit" class="search-submit" value="Search" />
</form>

Si no desea utilizar etiquetas y atributos HTML5, puede crear marcadores de posición con JavaScript.

los get_search_form oficial explicó la modificación más flexible que podría agregar en sus funciones.php.

echa un vistazo aquí con Confirmación de CodeX.

TL;DR

Consulte el código a continuación.

function wpdocs_my_search_form( $form ) {
// replace the new form on your own.
    $form = '<form role="search" method="get" id="searchform" class="searchform" action="' . home_url( "https://stackoverflow.com/" ) . '" >
    <div><label class="screen-reader-text" for="s">' . __( 'Search for:' ) . '</label>
    <input type="text" value="' . get_search_query() . '" name="s" id="s" />
    <input type="submit" id="searchsubmit" value="'. esc_attr__( 'Search' ) .'" />
    </div>
    </form>';
 
    return $form;
}

add_filter( 'get_search_form', 'wpdocs_my_search_form' );

¿Ha sido útil esta solución?