Функция: 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-атакам?