Modificando a caixa de pesquisa de widgets

4

Estou usando o padrão do tema twentysixteen. Eu tenho algumas informações neste site, mas quando alguém usa a caixa de pesquisa que tenho na barra lateral (widget), eu gostaria que ele pesquisasse um site externo do WordPress que tivesse informações mais relevantes.

Assim, em domain1.com, quando alguém clica no widget e insere o termo de pesquisa, clica no botão de pesquisa ou pressiona Enter, eu gostaria que ele pesquisasse em domain2.com

Scenerio:

  1. O visitante clica na caixa de pesquisa que está no domínio1.com
  2. Tipos no equipamento bobcat como seu termo de pesquisa
  3. Pressione para digitar
  4. Pesquisa direciona para: http://domain2.com/?s=bobcat+equipment

Meu arquivo searchform.php tem esta aparência:

<?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>

Qualquer ajuda com a modificação seria apreciada. Restringindo isto a esta linha: <form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">

Ajude a usar um URL personalizado aqui em vez de fazer eco ao URL da página inicial.

    
por d.ariel 13.11.2016 / 14:17

1 resposta

4

O widget Pesquisar padrão usa a função principal get_search_form() para exibir o formulário de pesquisa.

Você pode, portanto, editar a ação do formulário de pesquisa

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

no arquivo searchform.php do tema filho.

Aqui, assumimos que domain2.com também suporta os parâmetros de pesquisa padrão do WordPress.

Se não quisermos modificar o arquivo, podemos ajustar a saída de home_url() por meio 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/';
}

em que segmenta a primeira chamada home_url() em cada widget Pesquisar .

Observe que a primeira abordagem modificará a saída de todas as chamadas get_search_form() , mas a segunda abordagem modificará apenas a saída de get_search_form() no widget Pesquisar .

    
por birgire 13.11.2016 / 14:25

Tags