WordPress: отключение встроенного поиска

Автор: | 05/01/2015
 

wordpressЧто бы избавиться от встроенного поиска, который работает явно хуже, чем поиск от Google, но при этом каждый раз делает запросы в базу и, соответсвенно, создаёт ненужную нагрузку, можно сделать следующее.

Редактируем файл functions.php темы, в данном случае это файл /var/www/vhosts/rtfm/rtfm.co.ua/wp-content/themes/gchrome/functions.php.

В конец файла, но перед последним вызовом вида add_action('init', 'googlechrome_options') добавляем:

function fb_filter_query( $query, $error = true ) {

    if ( is_search() ) {
        $query->is_search = false;
        $query->query_vars[s] = false;
        $query->query[s] = false;

        // to error
        if ( $error == true )
            $query->is_404 = true;
    }
}

add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

Далее, редактируем файл 404.php темы – /var/www/vhosts/rtfm/rtfm.co.ua/wp-content/themes/gchrome/404.php.

Лично я убрал там всё, и добавил следующее:

Not found

<a href="http://rtfm.co.ua/"> Back to blog</a>

Последнее – убираем форму поиска с блога вообще.

В файле темы header.php находим div id="searchbox":

            <div id="searchbox">
            <form method="get" id="searchform" action="<?php echo home_url(); ?>/">
            <input type="text" name="s" id="s" class="search_input" value="<?php the_search_query(); ?>" />
            <input type="image" src="<?php echo get_template_directory_uri() ?>/images/transparent.gif" id="searchsubmit" />
            </form>
            </div>

И удаляем его.

Готово.

Добавить форму поиска от Google можно тут>>>.