Modificar cuadro de búsqueda de widget

4

Estoy usando el tema predeterminado de Twentysixteen. Tengo algo de información en este sitio, pero cuando alguien usa el cuadro de búsqueda que tengo en la barra lateral (widget), me gustaría buscar en un sitio web de WordPress externo que tenga información más relevante.

Entonces, en domain1.com, cuando alguien hace clic en el widget y pone su término de búsqueda, luego hace clic en el botón de búsqueda o presiona "Intro" para buscar en domain2.com

Scenerio:

  1. El visitante hace clic en el cuadro de búsqueda que está en domain1.com
  2. Tipos en equipos bobcat como su término de búsqueda
  3. Presiona entrar
  4. La búsqueda se dirige a: http://domain2.com/?s=bobcat+equipment

Mi archivo searchform.php tiene este aspecto:

<?php
/**
 * Template for displaying search forms in Twenty Sixteen
 *
 * @package WordPress
 * @subpackage Twenty_Sixteen
 * @since Twenty Sixteen 1.0
 */
?>

<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <label>
        <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label', 'twentysixteen' ); ?></span>
        <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder', 'twentysixteen' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
    </label>
    <button type="submit" class="search-submit"><span class="screen-reader-text"><?php echo _x( 'Search', 'submit button', 'twentysixteen' ); ?></span></button>
</form>

Cualquier ayuda con la modificación sería apreciada. Reduciendo esto a esta línea: <form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">

Ayuda con el uso de una URL personalizada aquí en lugar de hacer eco de la URL de inicio.

    
pregunta d.ariel 13.11.2016 - 14:17

1 respuesta

4

El widget predeterminado Buscar utiliza la función principal get_search_form() para mostrar el formulario de búsqueda.

Por lo tanto, puede editar el action del formulario de búsqueda

<form role="search" method="get" class="search-form" action="http://domain2.com">

en el archivo searchform.php del tema secundario.

Aquí asumimos que domain2.com también admite los parámetros de búsqueda predeterminados de WordPress.

Si no queremos modificar el archivo, podemos ajustar la salida de home_url() a través de filtros:

add_filter( 'widget_display_callback', function( $instance, $obj, $args )
{
    // Only target Search widgets
    if( 'search' === $obj->id_base )
        add_filter( 'home_url', 'wpse_search_domain', 10, 2 );

    return $instance;
}, 10, 3 );


function wpse_search_domain( $title, $post_id )
{
    // Only run once
    remove_filter( current_filter(), __FUNCTION__ );

    // Replace the home url with domain2.com
    return 'http://domain2.com/';
}

a dónde se dirige la primera llamada home_url() en cada widget Buscar .

Tenga en cuenta que el primer enfoque modificará la salida de todas las llamadas get_search_form() , pero el segundo enfoque solo modificará la salida de get_search_form() con cada widget de Buscar .

    
respondido por el birgire 13.11.2016 - 14:25

Lea otras preguntas en las etiquetas