Функция: get_search_form

01.04.2012
Описание

Подключает поисковую форму из файла шаблона searchform.php.

Использование
<?php get_search_form($echo); ?>
Параметры

$echo

(boolean) (необязательный) true выведет поисковую форму, false вернет поисковую форму в виде строки.

По умолчанию: true

Примеры

1. По умолчанию

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

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>

При создании своей поисковой формы помните, что она должна отправлять 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');

4. Использование параметра $echo

<?php $search_form = get_search_form(false); ?>

Поисковая форма не будет выведена, она будет храниться в переменной $search_form до тех пор, пока вы ее не выведете кодом:

<?php echo $search_form; ?>

Внимание! И хук и параметр $echo будут работать только если в шаблоне не существует файла searchform.php. В противном случае, будет показана поисковая форма, прописанная в searchform.php. Данное поведение является багом, который официально зарегистрирован разработчиками WordPress.

Лог изменений

Функция добавлена в версии 2.7

Исходный файл

Функция get_search_form() находится в wp-includes/general-template.php

Связанные теги|функции
Рубрики: Теги шаблоновФункции WordPressУсловные теги

Понравился пост? Подпишись на обновления по Обновления блога по RSSRSS или Обновления блога на TwitterTwitter !

Комментарии (всего 5 комментариев)

Написать комментарий

(обязательно)

(обязательно, не публикуется)

Для вставки кода используйте кнопку "Код", по умолчанию используется синтаксис подсветки языка "php", вы можете поменять его на любой другой поддерживаемый GeSHi язык, например "javascript", "css", "html4strict", "sql" и тд. Используйте предпросмотр!
 


Подписаться на уведомления без комментирования.