Agregar un formulario de búsqueda dentro de un div

2

Quería agregar un formulario de búsqueda dentro de una división usando el siguiente código:

printf( '<div class="entry"><p>%s</p>%s</div>', apply_filters( 'genesis_noposts_text', __( 'Try again below.', 'genesis' ) ), get_search_form() );

Pero cada vez que agrego el get_search_form() se genera antes del div, como el siguiente:

<form></form>
<div class="entry"></div>

La solución que encontré fue dividir el código, pero quería saber si hay una mejor solución que funcione correctamente.

remove_action( 'genesis_loop_else', 'genesis_do_noposts' );
add_action( 'genesis_loop_else', 'mytheme_do_noposts' );
function mytheme_do_noposts() {

    printf( '<div class="entry"><p>%s</p>', apply_filters( 'genesis_noposts_text', __( 'Try again below.', 'genesis' ) ) );

    printf( '%s</div>', get_search_form() );

}

get_search_form

    
pregunta SilverLink 09.03.2017 - 04:12

2 respuestas

3

El get_search_form() echos por lo que siempre se mostrará antes de las devoluciones. Uso:

get_search_form( false )
    
respondido por el Christina 09.03.2017 - 04:45
3

La solución es usar get_search_form( false ) .

get_search_form() generará el search form . Como está intentando usar el resultado en un contexto de cadena, necesita que la función devuelva html en forma de cadena, que está pasando por printf .

El único parámetro para get_search_form controla ese comportamiento. Por defecto se imprime, pero si pasa false , devolverá la cadena que necesita.

    
respondido por el Zelda 11.03.2017 - 15:05

Lea otras preguntas en las etiquetas