Функция: get_search_form
Подключает поисковую форму из файла шаблона searchform.php.
<?php get_search_form($echo); ?>  | 
<?php get_search_form($echo); ?>
$echo
(boolean) (необязательный) true выведет поисковую форму, false вернет поисковую форму в виде строки.
По умолчанию: true
1. По умолчанию
<?php get_search_form(); ?>  | 
<?php get_search_form(); ?>
Будет выведена поисковая форма, заданная в файле searchform.php. В случае, если данный файл в шаблоне не существует, будет выведена форма с кодом:
<form id="searchform" method="get" action="<?php echo home_url( '/' ); ?>"> <div> <label class="screen-reader-text" for="s">Search for:</label> <input id="s" name="s" /> <input id="searchsubmit" value="Search" type="submit" /> </div> </form>  | 
<form id="searchform" method="get" action="<?php echo home_url( '/' ); ?>"> <div> <label class="screen-reader-text" for="s">Search for:</label> <input id="s" name="s" /> <input id="searchsubmit" value="Search" type="submit" /> </div> </form>
2. Собственная поисковая форма
Создайте в папке вашего шаблона файл searchform.php со следующим кодом:
<div class="searchform"> <form method="get" id="searchform" action="<?php bloginfo('home'); ?>"> <input type="text" value="Поиск по сайту.." name="s" class="input" onfocus="if (this.value == 'Поиск по сайту..') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Поиск по сайту..';}"/> </form> </div>  | 
<div class="searchform"> <form method="get" id="searchform" action="<?php bloginfo('home'); ?>"> <input type="text" value="Поиск по сайту.." name="s" class="input" onfocus="if (this.value == 'Поиск по сайту..') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Поиск по сайту..';}"/> </form> </div>
При создании своей поисковой формы помните, что она должна отправлять GET-запрос на главную страницу блога, а название текстового поля для поиска должно быть s.
3. Изменение поисковой формы через хук
Поисковую форму можно изменить не только созданием или редактированием файла searchform.php, но и через хук. Для этого вставьте в файл functions.php вашего шаблона код:
function my_search_form($form) {
$form = 
'<form method="get" id="searchform" action="' . home_url( '/' ) . '">
  <div>
   <label class="screen-reader-text" for="s">Поиск по сайте..</label>
   <input type="text" value="' . get_search_query() . '" name="s" id="s" />
   <input type="submit" id="searchsubmit" value="Поиск" />
  </div>
</form>';
return $form; }
add_filter('get_search_form', 'my_search_form'); | 
function my_search_form($form) { $form = '<form method="get" id="searchform" action="' . home_url( '/' ) . '"> <div> <label class="screen-reader-text" for="s">Поиск по сайте..</label> <input type="text" value="' . get_search_query() . '" name="s" id="s" /> <input type="submit" id="searchsubmit" value="Поиск" /> </div> </form>'; return $form; } add_filter('get_search_form', 'my_search_form');
4. Использование параметра $echo
<?php $search_form = get_search_form(false); ?>  | 
<?php $search_form = get_search_form(false); ?>
Поисковая форма не будет выведена, она будет храниться в переменной $search_form до тех пор, пока вы ее не выведете кодом:
<?php echo $search_form; ?>  | 
<?php echo $search_form; ?>
Внимание! И хук и параметр $echo будут работать только если в шаблоне не существует файла searchform.php. В противном случае, будет показана поисковая форма, прописанная в searchform.php. Данное поведение является багом, который официально зарегистрирован разработчиками WordPress.
Функция добавлена в версии 2.7
Функция get_search_form() находится в wp-includes/general-template.php
Теги подключений: get_header, get_footer, get_sidebar, get_template_part, get_search_form, comments_template
		Понравился пост? Подпишись на обновления по 
RSS  или 
Twitter ! 
	
|   Сайте На сайте много плющек для вконтакте и не только. jazz-jazz.ru  |  


#1,
Подскажите пожалуйста, поставил wordpress и не могу поменять в строке поиска английское слово - search, на русское слово - поиск, то есть это слово, которое высвечивается в строке поиска пока не кликнешь по строке, чтобы ввести поисковый запрос, после клика оно исчезает. Понял, что надо копать в файле searchform.php в папке шаблона и ничего там понять не могу, в php полный ноль, не подскажете что искать? Может я вообще не там копаю? Ибо шаблоны всегда разные и наши, и зарубежные, а слово не изменяется. Попробовал ваш вариант не получилось - проблемы с отображением и кодировкой. Как в стандартном searchform.php это слово поменять?
#2,
запомните - любое редактирование файлов wordpress должно производиться в кодировке "UTF8 без БОМ". воспользуйтесь редактором Notepad++.
а по поводу search - скажите, какой у вас шаблон, я посмотрю.
#3,
Flector!!! СПАСИБО!!! Я уже пол дня мучилась с этой темой!! А поменяла кодировку и все получилось!!!
#4,
А можно по подробней узнать про get_search_query() как она защищает от XSS-атак?
Её же нужно обязательно вставить в код?
#5,
никак - с чего вы вообще взяли, что она имеет отношение к XSS-атакам?